CGRectIntersectsRect два кадра из другой иерархии представлений

У меня есть UIButton и UIView, принадлежащие двум разным иерархиям представлений, и я пытаюсь обнаружить коллизию, когда перетаскиваю кнопку в «viewTrashArea».

Проблема в том, что рамка кнопки и рамка представления находятся в разных координатах и ​​поэтому при столкновении думают, что они соприкасаются, но находятся далеко друг от друга.

Как я могу обнаружить столкновение на основе глобального положения экрана?


person mhamdouchi    schedule 05.12.2013    source источник
comment
stackoverflow.com/questions/8465659/   -  person mattsven    schedule 05.12.2013


Ответы (2)


Данный

UIButton *button;
UIView *viewTrashArea;

Эта строка вернет true, если они пересекутся:

CGRectIntersectsRect([button convertRect:button.bounds toView:viewTrashArea], viewTrashArea.bounds);
person matehat    schedule 05.12.2013

Вам нужно будет преобразовать позиции в общую систему координат. Для этого используйте UIView методы convertRect:fromView: и convertRect:toView:.

person Community    schedule 05.12.2013