我目前正在构建一个在滚动视图上具有调整大小的 UIPickerView 的应用程序,我面临的问题是,当您尝试滚动选择器时,滚动视图正在移动。
在过去的几个小时里,我试图通过创建执行以下 hitTest 的 UIScrollView 子类选择选择器时禁用滚动视图来解决此问题:
- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
UIView* result = [super hitTest:point withEvent:event];
if ([result.superview isKindOfClass:[UIPickerView class]])
{
NSLog(@"Cancel touch");
self.canCancelContentTouches = NO;
self.delaysContentTouches = NO;
self.scrollEnabled = NO;
}
else
{
self.canCancelContentTouches = YES;
self.delaysContentTouches = YES;
self.scrollEnabled = YES;
}
return result;
}
使用上面的代码,我发现当我单击并按住 UIPickerView 的某些部分时,它会取消触摸并禁用 UIScrollview OK,我可以移动 UIPicker 以选择新值,但是当我在 PickerView 上的某些区域并执行 NSLog 时在报告的类上,如下所示
NSLog(@"%@", [result.superview class]);
它将 UIPickerTableViewWrapperCell 输出到控制台,并且永远不会输入 isKindOfClass[UIPickerView class]。
我也尝试过 isMemberOfClass 也不起作用。
任何帮助,将不胜感激。
谢谢亚伦