問題原因:
該問題原因是由于系統的某些手勢 delaysTouchesBegan 屬性為 YES,當按鈕處在某些特定位置時觸摸事件會先被這些系統的手勢攔截,系統不響應才會繼續分發,而按鈕的 UIControlEventTouchDown 事件是需要立即響應的,所以會導致事件類型為 UIControlEventTouchDown 的響應有延遲
解決方案:
在自定義聊天頁面中將這些系統手勢的 delaysTouchesBegan 手動置為 NO,這樣當屏幕接收到觸摸事件后在系統手勢進行響應的同時就會把該事件傳遞下去
相關代碼:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
for (UIGestureRecognizer *gesture in self.view.window.gestureRecognizers) {
gesture.delaysTouchesBegan = NO;
}
}
詳情查看:融云-為用戶提供IM即時通訊和實時音視頻通信云服務