6

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

我已经包括以下...

_scrollView.delaysContentTouches = NO;

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

4

2 回答 2

8

您可以覆盖此方法UIScrollView

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

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

  1. 显示高亮效果UIControlEventTouchDown
  2. 触发按钮UIControlEventTouchUpInside | UIControlEventTouchUpOutside
  3. 清晰的高光效果为UIControlEventTouchCancel
于 2013-08-28T04:21:33.780 回答
1

您可以使用 scrollViewWillBeginDragging 来触发通知并通过在按钮代码中监听它来处理按钮取消。我认为这是您正在尝试做的,但我不确定我是否正确理解了您的问题。

于 2013-04-04T20:01:52.997 回答