UIControlEventTouchUpInside latency
У меня есть кнопка и с событием управления, как:
[_flashBackButton addTarget:self
action:@selector(flashBackButtonCallback:)
forControlEvents:UIControlEventTouchUpInside];
если я использую UIControlEventTouchUpInside
Перед вызовом моего селектора очень маленькая задержка (1 секунда) (задержка, после которой я перестал касаться экрана).
Я пробовал с
[_flashBackButton addTarget:self
action:@selector(flashBackButtonCallback:)
forControlEvents:UIControlEventTouchDown];
мой селектор вызывается сразу.
=> проблема в том, что эта кнопка используется для отображения другого контроллера представления, и эта длительная задержка заставляет наше приложение чувствовать себя не отвечающим. Когда я сравниваю с другими известными приложениями, такими как Facebook, Twitter и т. Д., Их контроллеры представления появляются почти сразу после нажатия кнопки.
Есть ли кто-нибудь, кто знает способ это исправить? Я не хочу использовать UIControlEventTouchDown
,
Заранее спасибо за помощь
чтобы посмотреть видео: https://www.dropbox.com/s/kl1sr5jnpzo1i7s/IMG_2865.MOV
2 ответа
Хорошо, я должен выяснить, в чем проблема:
моя кнопка - это элемент uiBarButtonItem, и у меня на панели навигации есть средство распознавания жестов (двойное нажатие).
Это был этот жест, который вызвал задержку. Я решил мою проблему с:
События щелчка в UINavigationBar, переопределенные распознавателем жестов
Похоже, у вас есть что-то в следующем методе viewWillAppear viewController, блокирующем основной поток пользовательского интерфейса. Поместите NSLog в исходное действие viewController; посмотрите, запускается ли он немедленно, затем поместите другое в целевой метод viewWillAppear. Это должно сузить проблему.