位置をタッチする方法を知っているので、タッチした位置のCGPointができました。タッチがUIView上にあるかどうかを確認するための最良の方法は何ですか?私は次の方法を知っています:
if touchpoint.x > frame.origin.x && touchpoint.x < frame.size.width + frame.origin.x
などですが、これが最善の方法ですか?
位置をタッチする方法を知っているので、タッチした位置のCGPointができました。タッチがUIView上にあるかどうかを確認するための最良の方法は何ですか?私は次の方法を知っています:
if touchpoint.x > frame.origin.x && touchpoint.x < frame.size.width + frame.origin.x
などですが、これが最善の方法ですか?
ポイントがビューの境界内にあるかどうかを単に知りたい場合は、この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");
}
Ughの答えは、あなたが望むものであると私が信じる見解をカバーしています。任意CGRect
のを持っている場合は、次を使用できますCGRectContainsPoint
:
BOOL isInside = CGRectContainsPoint(myRect, touchPoint);
はい、CGRectContainsPointを使用すると、非常に多くの比較式を作成する必要がなくなります。