Подтвердить что ты не робот

Отключить получение штрихов из родительского представления в подвью

У меня есть UIView parentView, который реализует UITapGuestureRecognizer и делает что-то при нажатии. parentView имеет суб-представление под названием childView, которое также реализует UITapGuestureRecognizer и делает что-то при нажатии.

Есть экземпляр, когда я должен отключить childViews UITapGestureRecognizer во время анимации в течение небольшого момента, и я заметил, когда он выключен, и я коснулся childView, кран будет перехвачен parentView. Кроме того, у меня есть панель инструментов, прикрепленная к вершине этого представления, которая не имеет никакого распознавателя жестов, прикрепленного к ней, и она касается получения переданного родительского элемента (кнопки будут едва работать). Мне интересно, можно ли отключить это, не имея ссылки на родителей UITapGestureRecognizer?

Я пробовал использовать свойство exclusiveTouches для UIView, установленное на yes, и оно не работает. Любые предложения будут оценены.

4b9b3361

Ответ 1

В распознавателях родительских жестов реализуйте UIGestureRecognizerDelegate и реализуйте следующий метод:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{
    if ([touch.view isKindOfClass:[ClassThatYouWantTouchesBlocked class]]) 
    {
        return NO;
    }
    else 
    {
        return YES; 
    }
}

Замените ClassThatYouWantTouchesBlocked классом, который вы хотите, чтобы его касания игнорировались.

Ответ 2

Что делать, если никогда не отключать распознаватель жестов жестов ChildView? если он оживляет возврат из метода жестового обращения с ребенком, ничего не делая.

Если это свойство imageView, чем isAnimating, может быть использовано.