最終的にユーザーがタップできる 10 のゾーンを持つカスタム UIView を作成しました。ゾーンがタップされたときに、選択範囲を示すために低アルファ レイヤーをオーバーレイしたいと考えています。
残念ながら、セクションをタップすると、作成した CALayer がカスタム ビューの境界外に描画されます。私のx座標とy座標の両方がずれているようです。
カスタム ビュー内の drawRect メソッドは次のとおりです。
- (void)drawRect:(CGRect)dirtyRect
{
if (touchPoint.x > 0 || touchPoint.y > 0){
CGRect bounds = [self bounds];
float widthOfArea = bounds.size.width / 10.0;
float sectionNumber = round(touchPoint.x / widthOfArea);
touchOverlayLayer = [[CALayer alloc] init];
[touchOverlayLayer setBounds:CGRectMake(0.0, 0.0, widthOfArea, bounds.size.height)];
[touchOverlayLayer setPosition:CGPointMake(widthOfArea * sectionNumber, self.bounds.origin.y)];
UIColor *greyish = [UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:.5];
CGColorRef cggreyish = [greyish CGColor];
[touchOverlayLayer setBackgroundColor:cggreyish];
[[self layer] addSublayer:touchOverlayLayer];
}
}
そして、結果の表示が添付されます。