23
如果在UIScrollView(或表格視圖)內部時,我已經注意到UIButton的突出顯示狀態時略有延遲。否則,突出顯示的狀態幾乎是瞬間的。是否可以在UIScrollView中刪除UIButton突出顯示狀態的延遲?
我推測這必須通過設計來提供用戶滾動的機會。但它看起來像按鈕對我沒有反應。有沒有辦法來解決這個問題?
如果在UIScrollView(或表格視圖)內部時,我已經注意到UIButton的突出顯示狀態時略有延遲。否則,突出顯示的狀態幾乎是瞬間的。是否可以在UIScrollView中刪除UIButton突出顯示狀態的延遲?
我推測這必須通過設計來提供用戶滾動的機會。但它看起來像按鈕對我沒有反應。有沒有辦法來解決這個問題?
確實,這是一個設計選擇。它需要這麼短的時間來區分滾動(panGesture)和輕敲。如果消除這種延遲,那麼如果用戶將手指放在按鈕的頂部,用戶將無法滾動,這不是很好的用戶體驗。
由於滾動視圖沒有滾動條,因此它必須知道觸摸是否表示滾動的意圖,是否意圖跟蹤內容中的子視圖。爲了做出這個決定,它通過啓動一個定時器暫時攔截一個觸發事件,並且在定時器觸發之前,看看觸摸手指是否進行任何移動。如果定時器在沒有顯着位置變化的情況下觸發,則滾動視圖將跟蹤事件發送到內容視圖的觸摸子視圖。
我不會建議禁用延遲,但如果你堅持,你可以在界面生成器設置它(選擇滾動查看,並在右側面板中,有權根據「退回縮放「)或使用此代碼:
scrollView.delaysContentTouches = false
謝謝!完美的答案。我會考慮一下。我希望有一種方法來擺脫延遲,但仍然啓用滾動。 – pixelfreak
@pixelfreak創建自定義滾動視圖並不是不可能的,但iOS用戶習慣了這種行爲,如果您沒有混淆基本的iOS用戶交互概念,它會更好。 –
是否有可能只爲滾動視圖的特定子視圖執行此操作,如問題所述? –