的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