iOS7——UIControlEventTouchDown延遲響應問題

問題描述

在iOS7下開發,真機調試時,UIButton的其餘事件響應都正常,可是UIControlEventTouchDown事件響應會延遲,並且不一樣響應區域發生的延時狀況不一樣,有時延遲1s之後響應TouchDown事件,有時候一直按着不動就不響應事件,只有把手指輕輕滑動下才能正常響應TouchDown事件。

問題分析

UIControlEventTouchDown事件是一旦手指碰到按鈕就調用了,這樣在iOS7上會產生一個衝突,因爲iOS7加上了手勢滑動返回這麼一個動做,在手勢滑動返回時那個區域是不容許有UIControlEventTouchDown事件的,否則就會有事件衝突了,系統不知道是要準備返回仍是要點擊那個Button,因此就加上了TouchDown事件的一個延遲響應。

解決方案

  • 禁止全部滑動返回的手勢,讓TouchDown可以正常響應
    self.navigationController.interactivePopGestureRecognizer.delaysTouchesBegan=NO;
  • 重寫UIButton,捕捉全部的手勢事件而後重寫
相關文章
相關標籤/搜索