0

我有一个包含 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];

发生的情况是模型控制器视图内的触摸事件和模型控制器视图之外但在滚动视图边界内的触摸事件似乎正在相互影响。我玩过

self.scrollView.canCancelContentTouches = NO;
self.scrollView.delaysContentTouches = NO;

但还没有找到可行的解决方案。

有任何想法吗 ?

提前致谢

4

1 回答 1

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;
}

这样 - 如果 innver 视图的 hittest 是肯定的,则滚动视图的滚动被禁用,并且只有 innver 视图会获得事件。

于 2012-12-06T12:30:15.943 回答