2011-02-08 28 views

Trả lời

11

Bạn có thể sử dụng chức năng CGRectIntersectsRect để dễ dàng kiểm tra giao điểm hình chữ nhật, với điều kiện UIImageViews chia sẻ cùng một superview (chính xác hơn, có cùng một không gian tọa độ).

Có khả năng bạn sẽ cần phải thêm mã như sau:

-(void) touchesEnded:(NSSet *) touches { 
    if(CGRectIntersectsRect([imageViewA frame], [imageViewB frame])) { 
     NSLog(@"Do something."); 
    } 
    } 

đến UIView nơi đặt máy chủ cả xem hình ảnh, hoặc một phương pháp tương tự được gọi là bất cứ khi nào kéo được hoàn tất.

+0

này đã làm các trick, cảm ơn bạn rất nhiều! – John

+0

Nếu chúng không chia sẻ cùng một không gian tọa độ: 'BOOL intersects = CGRectIntersectRect (viewA.bounds, [viewA convertRect: viewB.bounds fromView: viewB])' – nielsbot

0

Bạn có thể sử dụng:

CGRectIsNull (CGRectIntersection (view1.bounds, view2.bounds));

1

hãy thử một cái gì đó như thế này.

if (CGRectContainsRect([myImageView1 frame], [myImageView2 frame])) { 
     NSLog(@"Overlaped, it's working!"); 
} 
0

Trong Swift 3.0 đã trở thành ...

if (self.image2P.bounds.contains(self.image3P.bounds)) { 
    print("Overlaped, it's working!") 
} 
Các vấn đề liên quan