CGPoint
a が特定の内にあるかどうかを確認する方法はありCGRect
ますか?
例: をドラッグしていて、その中心点が別の 内UIImageView
にあるかどうかを確認したい。CGPoint
UIImageView
CGPoint
a が特定の内にあるかどうかを確認する方法はありCGRect
ますか?
例: をドラッグしていて、その中心点が別の 内UIImageView
にあるかどうかを確認したい。CGPoint
UIImageView
let view = ...
let point = ...
view.bounds.contains(point)
bool CGRectContainsPoint(CGRect rect, CGPoint point);
パラメーター
rect
調べる四角形。point
調べるポイント。戻り値 四角形が null または空ではなく、ポイントが四角形内にある場合は true。それ以外の場合は false。点の座標が長方形の内側にあるか、最小 X エッジまたは最小 Y エッジにある場合、その点は長方形の内側にあると見なされます。
Swift では、次のようになります。
let point = CGPointMake(20,20)
let someFrame = CGRectMake(10,10,100,100)
let isPointInFrame = CGRectContainsPoint(someFrame, point)
スウィフト 3 バージョン:
let point = CGPointMake(20,20)
let someFrame = CGRectMake(10,10,100,100)
let isPointInFrame = someFrame.contains(point)
ドキュメントへのリンク。両方が同じ座標系にある場合は必ず封じ込めを確認してください。そうでない場合は変換が必要です (いくつかの例)
UIView の pointInside:withEvent: が良い解決策になる可能性があります。指定された CGPoint が使用している UIView インスタンスにあるかどうかを示すブール値を返します。例:
UIView *aView = [UIView alloc]initWithFrame:CGRectMake(0,0,100,100);
CGPoint aPoint = CGPointMake(5,5);
BOOL isPointInsideView = [aView pointInside:aPoint withEvent:nil];
それはとても簡単です、あなたはこの種の仕事をするために次の方法を使うことができます:-
-(BOOL)isPoint:(CGPoint)point insideOfRect:(CGRect)rect
{
if ( CGRectContainsPoint(rect,point))
return YES;// inside
else
return NO;// outside
}
あなたの場合、imagView.centerを point として、別のimagView.frameを rect として about メソッドに渡すことができます。
このメソッドは、次のUITouchメソッドでも使用できます。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
}