非矩形型のボタンを作りたいのですが、今使っているのが透過png画像なのがいけないのかもしれないと考え、図形を描いて試してみました。
objective-Cで図形を描くこと自体が初めてなのに、今回のアプリの時計部分をCALayerで作ってしまったため、CALayerに図形を描く方法を探さねばなりませんでした。
いろいろググったところ、こちらのサイトで方法を見つけました。
早速、自分のソースコードに組み込みました。
円の描き方や色の付け方は、他のサイトを参考に、自分がやりやすい方法を使ってみました。
//文字盤back
layer_clock_back =[CALayer layer];
layer_clock_back.frame = CGRectMake(0, 0, 300, 300);
layer_clock_back.position =CGPointMake(160, 180);
layer_clock_back.zPosition =20;
UIGraphicsBeginImageContext(CGSizeMake(300, 300));// オフスクリーンに描画
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);//塗り色
CGContextSetStrokeColorWithColor(context, [UIColor orangeColor].CGColor);//線色
CGContextSetLineWidth(context, 4.0);//線の太さ
CGContextAddEllipseInRect(context, CGRectMake(4, 4, 292, 292));//円の大きさ
CGContextDrawPath(context, kCGPathFillStroke);//描く
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();// オフスクリーン内容をUIImageに変換
UIGraphicsEndImageContext();// オフスクリーン描画を終了
layer_clock_back.contents = (id)img.CGImage;//layerにイメージをセットする
[baseLayer addSublayer:layer_clock_back];
CALayerで矩形を作って、オフスクリーンに描画し、最後にそれをソースとしてレイヤーにaddするようです。

ただ、残念ながら、描画されていない場所もタッチが反応するのは、透過png画像と変わりありませんでした。
他の方法を探さねばなりません。。。