2013-04-12 4 views
1

У меня есть два пользовательских UIView (A и B соответственно), каждый из которых имеет один и тот же источник и тот же размер. Оба они добавляются в родительский UIView (C) в качестве подзонов.UIView subview touch forward

У меня есть распознаватель касаний как часть A и B, которые прислушиваются к касаниям на определенных местах. Если это прикосновение получено, он вызывает делегата до родительского UIView, говоря, что он был затронут. Проблема в том, что, поскольку B добавляется после A, B никогда не получает событие касания.

UIView A и B - это одиночные линии с конечными точками. Они оба признают штрихи на конечных точках и поднимают уведомления делегатов. Как добавить subviews и распознать прикосновения к ним с родительскими представлениями сверху? Это похоже на эксклюзивность.

+0

Помогает ли это? http://stackoverflow.com/questions/1207287/whats-the-trick-to-pass-an-event-to-the-next-responder-in-the-responder-chain – fguchelaar

ответ

1

Если A принимает события прикосновения и B не хотя они оба дети С, то это потому, что А утверждая, что все события прикосновения для себя, в том числе тех, которые предназначены для B.

Решение заключается в переопределить pointInside: withEvent: метод на А для того, чтобы определить, должен ли он принять это событие для себя, как это:

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { 
    if ([self pointIsInHotspot:point]) return YES; 
    return NO; 
} 

Где pointIsInHotspot является то, что тесты необходимо выполнить для того, чтобы определить, если точка находится на активная область в представлении.

0

cancelsTouchesInView NO в вашем распознавателе жестов.

Смежные вопросы