iOS版的UIScrollView取消滚动的UIButton触摸(iOS UIScrollView

2019-08-19 14:44发布

我有一个UIScrollView内的一些UIButtons,但我不希望延迟按钮触摸。 然而,一旦滚动视图检测拖动/滚动,我想取消的UIButton触摸并用的UIScrollView的滚动进行。

我已经包括以下...

_scrollView.delaysContentTouches = NO;

...但(显然)按钮的触摸不会拖的时候取消。 有没有人有任何建议,我怎么能实现这个功能?

Answer 1:

您可以覆盖这个方法UIScrollView

-(BOOL)touchesShouldCancelInContentView:(UIView *)view
{   
    return YES;
}

而在你的UIButton,你应该针对不同的控件的事件添加不同的方法。

  1. 显示高亮效果UIControlEventTouchDown
  2. 触发按钮UIControlEventTouchUpInside | UIControlEventTouchUpOutside UIControlEventTouchUpInside | UIControlEventTouchUpOutside ;
  3. 清晰高亮效果UIControlEventTouchCancel


Answer 2:

你可以使用scrollViewWillBeginDragging到断火的通知,并通过在按钮的代码侦听它的处理按钮取消。 我认为这是你正在尝试做的,但我不知道如果我理解正确你的问题。



文章来源: iOS UIScrollView cancel UIButton touch on scroll