6

目前我看到一个触摸事件将向我显示触摸发生的 UIView。但是,如果我需要检测一些非矩形形状的触摸,比如圆形,该怎么办。我将如何去做这样的事情?

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

任何帮助/方向表示赞赏,TIA!

4

1 回答 1

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, 
  ...
}

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

于 2009-03-15T02:18:41.667 回答