我有一个按钮和一个控件事件,如:
[_flashBackButton addTarget:self
action:@selector(flashBackButtonCallback:)
forControlEvents:UIControlEventTouchUpInside];
如果我使用UIControlEventTouchUpInside
,在我的选择器被调用之前有一个非常小的延迟(1秒)(在我停止触摸屏幕之后的延迟)。
我试过
[_flashBackButton addTarget:self
action:@selector(flashBackButtonCallback:)
forControlEvents:UIControlEventTouchDown];
立即调用我的选择器。
=>问题是这个按钮用于显示另一个视图控制器,这个长时间的延迟使我们的应用程序感觉无响应。当我与其他众所周知的应用程序(如facebook,twitter等)进行比较时,他们的视图控制器在按下按钮后几乎就会弹出。
有人知道修复方法吗?我不想使用UIControlEventTouchDown
。
提前感谢您的帮助
答案 0 :(得分:1)
听起来你在下一个viewController的viewWillAppear方法中有一些东西阻塞主UI线程。在源视图控制器上放置一个NSLog; s动作并查看它是否立即触发,然后将另一个放在目标viewWillAppear方法上。这应该缩小问题的范围。
答案 1 :(得分:1)
好的,我已经弄明白问题是什么:我的按钮是一个uiBarButtonItem,我的uinavigation栏上有一个手势识别器(双击)。这是导致延迟的这种姿势。我已经解决了我的问题:
Click events in UINavigationBar overridden by the gesture recognizer