目前我看到触摸事件会向我显示触摸发生的UIView。但是,如果我需要检测一些非矩形形状的触摸,如圆形。我该怎么做呢?
基本上我只想在用户触摸不可见的圆形区域内某处时做某事。
感谢任何帮助/指示,TIA!
答案 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,
...
}
要测试球体,您需要计算从触摸点到球体中心的距离,然后检查这是否小于球体半径。