我有一个包含ContainerView的ScrollView。 ContainerView包含另一个用户应该可以在其中平移的视图。
scrollView仅滚动垂直,“containerView内的视图”可在所有方向上平移。 这就是我所拥有的
self.scrollView.contentSize = CGSizeMake(1024,1440);
self.modelController = [self.storyboard instantiateViewControllerWithIdentifier:@"LCProduct3DViewController"];
self.modelController.meshIdentifier = self.meshIdentifier;
[self addChildViewController:self.modelController];
self.modelController.view.frame = self.threeDView.bounds;
[self.threeDView addSubview:self.modelController.view];
接下来发生的事情是,modelController视图中的触摸事件以及modelControler视图之外但在scrollview边界内的触摸事件似乎正在相互影响。 我玩了
self.scrollView.canCancelContentTouches = NO;
self.scrollView.delaysContentTouches = NO;
但尚未找到可行的解决方案。
任何想法?
提前致谢
答案 0 :(得分:1)
可以在其他地方找到: 诀窍是子类化scrollView并覆盖hitTest方法,如下所示:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
UIView* result = [super hitTest:point withEvent:event];
if ([result isKindOfClass:[GLKView class]]) {
self.scrollEnabled = NO;
} else {
self.scrollEnabled = YES;
}
return result;
}
这样 - 如果内部视图的hittest为正,滚动视图的滚动将被禁用,只有内部视图才能获得该事件。