iOS UIScrollView在滚动时取消UIButton touch

时间:2013-04-04 18:36:40

标签: iphone ios objective-c uiscrollview uibutton

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

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

_scrollView.delaysContentTouches = NO;

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

2 个答案:

答案 0 :(得分:7)

您可以覆盖UIScrollView

的此方法
-(BOOL)touchesShouldCancelInContentView:(UIView *)view
{   
    return YES;
}

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

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

答案 1 :(得分:1)

您可以使用scrollViewWillBeginDragging触发通知,并通过在按钮中搜索按钮取消按钮。码。我认为这是你要做的,但我不确定我是否正确理解你的问题。