iOS UIScrollView在滚动时取消UIButton touch

luc*_*ien 6 iphone objective-c uibutton uiscrollview ios

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

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

_scrollView.delaysContentTouches = NO;
Run Code Online (Sandbox Code Playgroud)

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

小智 8

你可以覆盖这个方法UIScrollView.

-(BOOL)touchesShouldCancelInContentView:(UIView *)view
{   
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

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

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