2011-02-08 3 views

ответ

11

Вы можете использовать функцию CGRectIntersectsRect, чтобы легко проверить пересечение прямоугольника, если UIImageViews имеют один и тот же вид супервизора (точнее, имеют такое же координатное пространство).

Вероятно, вам нужно будет добавить код вроде следующего:

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

в UIView, на котором размещены оба представления изображения или аналогичный метод, который вызывается всякий раз, когда сопротивление будет завершена.

+0

Это сделал трюк, спасибо большое! – John

+0

Если они не разделяют одно и то же пространство координат: 'BOOL пересекает = CGRectIntersectRect (viewA.bounds, [viewA convertRect: viewB.bounds fromView: viewB])' – nielsbot

0

Вы можете использовать:

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

1

попробуйте что-то вроде этого.

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

В Swift 3.0 стал ...

if (self.image2P.bounds.contains(self.image3P.bounds)) { 
    print("Overlaped, it's working!") 
} 
Смежные вопросы