Анимации UIView отменяют любой сенсорный ввод?

У меня есть UIScrollView здесь, где я добавляю отображение метки в середине экрана, когда пользователь прокручивает страницу, проблема в том, что пока идет анимация, пользователь не может прокрутить до следующей страницы (все пользователи взаимодействие кажется отключенным) до тех пор, пока анимация не закончится.

Вот мой код для отображения метки.

if(!scrollView.dragging)
    [UIView animateWithDuration:0.3
                          delay:0.3
                        options:UIViewAnimationOptionCurveEaseOut
                     animations:^(void){
                         [vesselNameLabel setFrame:frame];
                     }
                     completion:^(BOOL finished){}];

Итак, как мне выйти из этой отмены взаимодействия с пользователем в прокрутке?


person Christian A. Strømmen    schedule 07.05.2011    source источник


Ответы (2)


Итак, я понял это.

Оказывается, блочная анимация UIView по умолчанию блокирует взаимодействие с пользователем, и чтобы обойти это, вам нужно передать UIViewAnimationOptionAllowUserInteraction в качестве одного из параметров. Надеюсь, кому-то эта информация тоже пригодится.

person Christian A. Strømmen    schedule 07.05.2011
comment
Я также заметил, что он блокируется по умолчанию в iOS 4, но не в iOS 5. Я столкнулся с этой проблемой только при тестировании на телефоне коллеги, который все еще работает под управлением iOS 4. - person jowie; 28.10.2011
comment
Блокирует по умолчанию в iOS 6. - person mbuc91; 18.03.2013
comment
Круто, так просто :) - person Macistador; 16.03.2015

мы заметили странное поведение, если альфа становится равной 0... касания игнорируются.

person ingconti    schedule 15.03.2018
comment
Как и ожидалось. Невидимые представления не фиксируют входные данные. - person Christian A. Strømmen; 15.03.2018