我在UIScrollView中放置了一些UIButtons,但是我不想延迟按钮点击。然而,一旦滚动视图检测到拖动/滚动,我希望取消UIButton的点击并继续进行UIScrollView的滚动。
我已经包含了以下内容...
_scrollView.delaysContentTouches = NO;
...但是(显然)当拖动时,按钮触摸并不会被取消。请问有没有人对如何实现这个功能有建议?
我在UIScrollView中放置了一些UIButtons,但是我不想延迟按钮点击。然而,一旦滚动视图检测到拖动/滚动,我希望取消UIButton的点击并继续进行UIScrollView的滚动。
我已经包含了以下内容...
_scrollView.delaysContentTouches = NO;
...但是(显然)当拖动时,按钮触摸并不会被取消。请问有没有人对如何实现这个功能有建议?
您可以重写UIScrollView
的此方法。
-(BOOL)touchesShouldCancelInContentView:(UIView *)view
{
return YES;
}
在您的UIButton中,您应该为不同的控制事件添加不同的方法。
UIControlEventTouchDown
,应该显示高亮效果。UIControlEventTouchUpInside | UIControlEventTouchUpOutside
,应该触发按钮;UIControlEventTouchCancel
,应该清除高亮效果。