我怎么知道触摸点 (touchesBegan) 是否在隐藏的 UIBezierPath 上?
问问题
5576 次
1 回答
10
[bezierPath containsPoint:touchPoint];
只需确保您的触摸点与 bezierPaths 点位于相同的坐标系中,并且这些点位于相同的上下文中,即都在屏幕空间中。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self.view];
if ([self.bezierPath containsPoint:touchPoint])
{
// do stuff
}
}
另请注意:如果您在某些 CoreGraphics 绘图中使用 UIBezierPath,您将需要翻转 touchPoint 上的 y 轴,例如...
touchPoint.y = self.view.bounds.size.height - touchPoint.y;
于 2012-05-31T10:05:40.953 回答