如何检测特定区域的触摸

时间:2009-03-15 02:11:34

标签: iphone objective-c uikit

目前我看到触摸事件会向我显示触摸发生的UIView。但是,如果我需要检测一些非矩形形状的触摸,如圆形。我该怎么做呢?

基本上我只想在用户触摸不可见的圆形区域内某处时做某事。

感谢任何帮助/指示,TIA!

1 个答案:

答案 0 :(得分:7)

你会这样做。请注意,'locationInView'将返回相对于指定视图的触摸坐标,因此无论视图在屏幕上的哪个位置,视图左上角的触摸都将返回(0,0)。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{   
  UITouch *touch = [touches anyObject];

  // gets the coordinats of the touch with respect to the specified view. 
  CGPoint touchPoint = [touch locationInView:self];

  // test the coordinates however you wish, 
  ...
}

要测试球体,您需要计算从触摸点到球体中心的距离,然后检查这是否小于球体半径。