iOS UIScrollView取消滚动上的UIButton触摸

我在UIScrollView中有一些UIButton,但我不想延迟按钮触摸。 但是,只要滚动视图检测到拖动/滚动,我想取消UIButton触摸并继续滚动UIScrollView。

我已经包括以下内容......

_scrollView.delaysContentTouches = NO;

......但是(显然)按钮触摸在拖动时不会取消。 有没有人对我如何实现这个功能有任何建议?


你可以重写UIScrollView这个方法。

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

而在你的UIButton中,你应该为不同的控制事件添加不同的方法。

  • 显示UIControlEventTouchDown突出显示效果。
  • 触发按钮UIControlEventTouchUpInside | UIControlEventTouchUpOutside UIControlEventTouchUpInside | UIControlEventTouchUpOutside ;
  • UIControlEventTouchCancel清除高亮效果。

  • 您可以使用scrollViewWillBeginDragging来触发通知,并通过在按钮代码中侦听按钮来取消按钮取消。 我认为这就是你想要做的,但我不确定是否我已经正确理解你的问题。

    链接地址: http://www.djcxy.com/p/40533.html

    上一篇: iOS UIScrollView cancel UIButton touch on scroll

    下一篇: Zoomable UIScrollView with UIButtons capturing touches