您可以通过为这些图像视图制作rect来检测两个图像之间的碰撞.
考虑我的图像视图被命名:img_view1和img_view2.
图像视图创建:
//For img_view1 rect
//parameters are x,y,width,height
CGRect image_rect1 = CGRectMake(img_view1.position.x,img_view1.position.y,100,100);
//For img_view2 rect
//parameters are x,y,width,height
CGRect image_rect2 = CGRectMake(img_view2.position.x,img_view2.position.y,100,100);
Run Code Online (Sandbox Code Playgroud)
碰撞检测:
if(CGRectIntersectsRect(image_rect1, image_rect2))
{
NSLog(@"Rect is Intersecting");
}
Run Code Online (Sandbox Code Playgroud)
很好的回答@Anish,但你真的不需要CGRect为视图创建一个新的,因为你可以简单地使用他们各自的frame属性.
如果你想把这个逻辑放在一个方法中,它将如下所示:
-(BOOL)viewsDoCollide:(UIView *)view1 :(UIView *)view2{
if(CGRectIntersectsRect(view1.frame, view2.frame))
{
return YES;
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
只需将要测试的两个视图传递给此方法,然后检查输出结果.
| 归档时间: |
|
| 查看次数: |
6399 次 |
| 最近记录: |