Скажите, что приложение имеет две кнопки, и каждая из них запускает анимацию (например, push или другую стандартную сегу или пользовательскую анимацию). Как вы останавливаете обе анимации одновременно, если пользователь нажимает обе кнопки «сразу»? Ну, сначала я попробовал:Как я могу убедиться, что только одно действие выполняется в ответ на ввод пользователя?
[[viewController view] setUserInteractionEnabled:NO];
Но это не исправить проблему. (Может быть, userInteractionEnabled
не каскадно подобозрения сразу?)
Тогда я попробовал:
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
Что же решить эту проблему, кроме если нажать обе кнопки очень быстро, один за другим (в основном нажмите оба одновременно, используя 2 пальца), затем вы получаете обе анимации, которые вызывают проблемы для моего приложения. Возможно, оба события уже срабатывали до того, как мой код запускает -beginIgnoringInteractionEvents
?
Что такое надежный способ немедленно остановить любые другие события крана? Или флеши, которые уже начались. У меня есть эта проблема по всему моему приложению - нажатие двух кнопок (или нажатие на ячейки таблицы и т. Д.) Очень быстро вызывает два события и искажает анимацию.
Любые идеи? Что люди делают с этой проблемой в приложениях iOS?
Почему вы не добавляете свойство like isAnimating и не проверяете его состояние после нажатия кнопки и перед вашей анимацией? –
, когда нажимаете на кнопку check, есть ли какая-либо анимация, если анимация найдена, остановите ее и запустите новую анимацию. – Balu
Спасибо за ваш быстрый ответ, но у меня много анимаций по всему моему приложению, включая стандартные push/pop segues и т. Д. Поэтому мне нужно было бы иметь какое-то глобальное свойство AAimating и даже устанавливать его во время всех моих стандартных отступлений! (что трудно сделать, поскольку оно должно быть отменено по завершении анимации). Должен быть лучший способ? – Bbx