CALayerにUIImageの図形を描く

非矩形型のボタンを作りたいのですが、今使っているのが透過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画像と変わりありませんでした。
他の方法を探さねばなりません。。。