我有一个包含 2 个页面的 UIScrollView,我可以在它们之间水平滚动。但是,在我的其中一个页面上,我有一个 UIDatePicker,并且滚动视图正在拦截垂直触摸事件,因此我无法再操作日期选择器(除非通过单击或点击)。有没有办法告诉 ScrollView 将垂直触摸事件发送到日期选择器,但将水平触摸事件发送到滚动视图以切换页面?
实际上,有一个比鲍勃建议的更简单的实现。这对我来说非常有效。如果还没有,您将需要对 UIScrollview 进行子类化,并包含此方法:-
- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
UIView* result = [super hitTest:point withEvent:event];
if ([result.superview isKindOfClass:[UIPickerView class]])
{
self.canCancelContentTouches = NO;
self.delaysContentTouches = NO;
}
else
{
self.canCancelContentTouches = YES; // (or restore bool from prev value if needed)
self.delaysContentTouches = YES; // (same as above)
}
return result;
}
我使用的原因result.superview
是,获取触摸的视图实际上是一个 UIPickerTable,它是一个私有 API。
Cheers
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)