我知道如何触及位置,所以现在我有一个触摸位置的CGPoint。找出触摸是否超过UIView的最佳方法是什么?我知道的方法:
if touchpoint.x > frame.origin.x && touchpoint.x < frame.size.width + frame.origin.x
等等,但这是最好的解决方法吗?
答案 0 :(得分:5)
如果您只是想知道某个点是否在视图范围内,您可以使用pointInside:withEvent:
方法。
CGPoint touchPoint = [theTouch locationInView:theView];
// If the point was retrieved for a different view, it must be converted to the coordinate space of the destination view using convertPoint:fromView:
if([theView pointInside:touchPoint withEvent:nil]) {
NSLog(@"point inside");
}
答案 1 :(得分:3)
Ugh的回答涵盖了我认为是你想要的观点;如果您有任意CGRect
,则可以使用CGRectContainsPoint
:
BOOL isInside = CGRectContainsPoint(myRect, touchPoint);
答案 2 :(得分:0)
是的,CGRectContainsPoint将使您免于编写如此多的比较方程式。