iPhone sdk中用于碰撞检测的示例代码

Lak*_*hmi 2 iphone objective-c

你能否建议两个图像视图的碰撞检测示例代码.

提前致谢.

Ani*_*ish 9

您可以通过为这些图像视图制作rect来检测两个图像之间的碰撞.

考虑我的图像视图被命名:img_view1img_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)


Sab*_*bin 7

很好的回答@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)

只需将要测试的两个视图传递给此方法,然后检查输出结果.