我有一个滚动视图,当它上面没有按钮时,它会滚动。现在确实如此,当拖动鼠标(在模拟器上)时,什么也没有发生(我认为是因为按钮被按下)。我怎样才能做到这一点?
发生这种情况是因为UIButton
的子视图UIScrollView
(我假设按钮在您的情况下被添加为子视图)正在跟踪触摸而不是滚动视图。UIScrollView
method touchesShouldCancelInContentView
是这里的关键。根据其描述:“如果视图不是视图,则默认返回值为 YESUIControl
目的;否则,它返回NO
.”,即对于UIControl
对象(按钮),UIScrollView
不会尝试取消阻止滚动的触摸。
因此,要允许使用按钮滚动:
- 确保
UIScrollView
财产canCancelContentTouches
被设定为YES
.
- 子类
UIScrollView
并覆盖touchesShouldCancelInContentView
回来YES
当内容视图对象是UIButton
, 像这样:
- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
if ( [view isKindOfClass:[UIButton class]] ) {
return YES;
}
return [super touchesShouldCancelInContentView:view];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)