Как проверить, касается ли один UIView другого UIView? - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть пользовательский UIView, держатель.

У меня есть другой пользовательский UIView из другого класса, и экземпляр именуется буквой.

Когда письмо касается владельца, я хочу, чтобы держатель ответил.

1 Ответ

5 голосов
/ 01 сентября 2011

Вы можете проверить, что пересечение фреймов двух видов равно нулю.Используйте метод frame в классе UIView, чтобы получить кадр CGRect для каждого представления, затем вызовите CGRectIntersection, чтобы найти область перекрытия прямоугольников, если таковая имеется.Если они не касаются, пересечение будет нулевым прямоугольником (то есть вернет true для CGRectIsNull).

Код, не проверенный:

// Given UIView * letter, * holder:
CGRect letterFrame = [letter frame];
CGRect holderFrame = [holder frame];
CGRect intersection = CGRectIntersection(letterFrame, holderFrame);
if(CGRectIsNull(intersection)) {
    // Not touching yet - null intersection
} else {
    // Touching! Do something here
}
...