2011-09-24 57 views

回答

52

確實,這是一個設計選擇。它需要這麼短的時間來區分滾動(panGesture)和輕敲。如果消除這種延遲,那麼如果用戶將手指放在按鈕的頂部,用戶將無法滾動,這不是很好的用戶體驗。

由於滾動視圖沒有滾動條,因此它必須知道觸摸是否表示滾動的意圖,是否意圖跟蹤內容中的子視圖。爲了做出這個決定,它通過啓動一個定時器暫時攔截一個觸發事件,並且在定時器觸發之前,看看觸摸手指是否進行任何移動。如果定時器在沒有顯着位置變化的情況下觸發,則滾動視圖將跟蹤事件發送到內容視圖的觸摸子視圖。

UIScrollView Documentation

我不會建議禁用延遲,但如果你堅持,你可以在界面生成器設置它(選擇滾動查看,並在右側面板中,有權根據「退回縮放「)或使用此代碼:

scrollView.delaysContentTouches = false 
+0

謝謝!完美的答案。我會考慮一下。我希望有一種方法來擺脫延遲,但仍然啓用滾動。 – pixelfreak

+2

@pixelfreak創建自定義滾動視圖並不是不可能的,但iOS用戶習慣了這種行爲,如果您沒有混淆基本的iOS用戶交互概念,它會更好。 –

+0

是否有可能只爲滾動視圖的特定子視圖執行此操作,如問題所述? –

相關問題