点击按住说话按钮事件有延迟

在部分机型系统下聊天页面按住说话按钮点击会有短暂延迟才响应开始录音事件
发布时间: 2018-09-04 11:36

回答:

问题原因:

      该问题原因是由于系统的某些手势delaysTouchesBegan属性为YES,当按钮处在某些特定位置时触摸事件会先被这些系统的手势拦截,系统不响应才会继续分发,而按钮的UIControlEventTouchDown事件是需要立即响应的,所以会导致事件类型为UIControlEventTouchDown的响应有延迟

解决方案:

      在自定义聊天页面中将这些系统手势的delaysTouchesBegan手动置为NO,这样当屏幕接收到触摸事件后在系统手势进行响应的同时就会把该事件传递下去

相关代码:

    - (void)viewDidAppear:(BOOL)animated {

          [super viewDidAppear:animated];

          for (UIGestureRecognizer *gesture in self.view.window.gestureRecognizers) {

          gesture.delaysTouchesBegan = NO;

          }

     }


我对此仍有疑问!继续追问