的UIButton觸摸我有一個UIScrollView內的一些UIButtons,但我不希望延遲按鈕觸摸。但是,只要滾動視圖檢測到拖動/滾動,我想取消UIButton觸摸並繼續滾動UIScrollView。iOS版的UIScrollView取消滾動
我已經包括以下...
_scrollView.delaysContentTouches = NO;
...但(顯然)拖動按鈕時,觸摸不會取消。有沒有人對我如何實現這個功能有任何建議?
的UIButton觸摸我有一個UIScrollView內的一些UIButtons,但我不希望延遲按鈕觸摸。但是,只要滾動視圖檢測到拖動/滾動,我想取消UIButton觸摸並繼續滾動UIScrollView。iOS版的UIScrollView取消滾動
我已經包括以下...
_scrollView.delaysContentTouches = NO;
...但(顯然)拖動按鈕時,觸摸不會取消。有沒有人對我如何實現這個功能有任何建議?
您可以覆蓋的UIScrollView
此方法。
-(BOOL)touchesShouldCancelInContentView:(UIView *)view
{
return YES;
}
而在你的UIButton中,你應該爲不同的控制事件添加不同的方法。
UIControlEventTouchDown
的突出顯示效果。UIControlEventTouchUpInside | UIControlEventTouchUpOutside
觸發按鈕;UIControlEventTouchCancel
清晰的高亮效果。你可以使用scrollViewWillBeginDragging到斷火的通知,並通過在按鈕的代碼偵聽它的處理按鈕取消。我認爲這就是你想要做的,但我不確定是否我已經正確理解你的問題。
感謝您的反饋。我試過scrollViewWillBeginDragging,但是如果你在滾動之前點擊一個按鈕,它就不會觸發。我想要的是點擊一個按鈕,但沒有任何延遲。然後,如果您在手指仍然下滑時移動手指,則會取消該按鈕並開始滾動。 – lucien 2013-04-04 20:18:24
在iOS主屏幕上嘗試此操作...輕按應用程序,然後您會注意到它會變暗,但只要您拖動手指,就會取消觸摸並滾動屏幕 – lucien 2013-04-04 20:19:19
因此,您希望按鈕立即觸發一個動作,但當滾動視圖被拖動取消了?一旦你按下按鈕,然後拖動,scrollViewWillBeginDragging不會被調用?主屏幕的好例子。 – Psiticosis 2013-04-04 20:52:11
這是所需的解決方案。謝謝。 – lucien 2013-09-11 20:36:14
UIControlEventTouchCancel是我錯過的一個通知,它工作。謝謝! – cgossain 2014-03-07 17:12:04