1

位置をタッチする方法を知っているので、タッチした位置のCGPointができました。タッチがUIView上にあるかどうかを確認するための最良の方法は何ですか?私は次の方法を知っています:

if touchpoint.x > frame.origin.x && touchpoint.x < frame.size.width + frame.origin.x

などですが、これが最善の方法ですか?

4

3 に答える 3

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");
}
于 2011-05-19T22:39:13.653 に答える
3

Ughの答えは、あなたが望むものであると私が信じる見解をカバーしています。任意CGRectのを持っている場合は、次を使用できますCGRectContainsPoint

BOOL isInside = CGRectContainsPoint(myRect, touchPoint);
于 2011-05-19T22:51:30.617 に答える
0

はい、CGRectContainsPointを使用すると、非常に多くの比較式を作成する必要がなくなります。

于 2011-05-20T04:44:31.817 に答える