IBAction UIButton射击延迟

Nat*_* R. 5 sdk uibutton ibaction ios

我有一个UIButton连接到Interface Builder中的IBAction.

问题:

  • 动作触发和按钮的去亮点都需要一点点发生.

事实:

  • 查看结构:
    • 视图
      • 10个按钮(通过UIControlEventTouchUpInside连接到IBAction
      • 查看(子视图)
        • 手势识别器
        • 文本域
  • Subview有一个UITapGestureRecognizer,其delayTouchesBegan和delayedTouchesEnded都设置为NO
  • 动作发生在主线程中.
  • 测试一个简单的按钮(没有图像或标题,只有一个简单的NSLog),结果是一样的

问题: 为什么开火和去高亮延迟了?

Nat*_* R. 10

最后,我在某处添加了一些UIGestureRecognizer,并忘了设置delayedTouchesBegan为NO =(

  • 您的回答和问题对我有很大帮助。就我而言,在包含按钮的视图中添加双击手势会延迟按钮反应(操作系统正在等待确保按钮点击不会变为双击) (3认同)

Mal*_*ndi 7

好吧,我认为因为UITapGestureRecognizer...尝试执行以下操作:

  1. 连接IBOutlet到您的按钮.

2.将UITapGestureRecognizer委托给你的ViewController.

3.在yourViewController中实现此手势委托方法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
       shouldReceiveTouch:(UITouch *)touch {
    return (! [yourButton pointInside:[touch locationInView:yourButton] withEvent:nil]);
}
Run Code Online (Sandbox Code Playgroud)

这样可以将按钮识别为按钮而不是识别器.