石英圆绘图上的触摸事件?

时间:2009-09-10 11:35:24

标签: iphone

我在iphone模拟器上画了一个圆圈,使用石英2d和填充。有没有办法可以检测到该圈子上的触摸事件?

由于 Harikant Jammi

3 个答案:

答案 0 :(得分:7)

如果您拥有该圈的CGPath,则可以获取用户手指落入touchesBegan的CGPoint,并使用以下代码检查它是否属于此CGPath。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
  UITouch *touch = [[event allTouches] anyObject];
  CGPoint location = [touch locationInView:self.view];
  // Depending on your code, you may need to check a different view than self.view

  // You should probably check the docs for the arguments of this function--
  // It's been a while since I last used it
  if (CGPathContainsPoint(yourCircle, nil, location, nil)) {
    // Do something swanky
  } else {
    // Don't do teh swank
  }
}

答案 1 :(得分:0)

我还没有测试过它,但是如果圆圈周围的空间设置为0的alpha值,那么也许只有圆圈会接受触摸。您可能必须为视图关闭isOpaque,并且没有背景颜色。

如果这不起作用,那么您必须处理点击位置并编写代码以查看它是否在圈子区域内。

答案 2 :(得分:0)

只需在该圆圈上放置一个带有0.0 alpha的自定义隐形按钮,这样该按钮将始终能够检测到触摸。