嵌套的UIScrollViews

时间:2013-09-26 21:18:50

标签: ios objective-c uiscrollview

我有一个mainScrollView水平滚动添加了照片,mainScrollView的contentSize根据照片数量设置。

为了达到滚动到最后的效果并在带有用户显示信息的UIView中滑动,我将overlayScrollView添加到mainScrollView的子视图中。

overlayScrollView包含位于框架外的contentView。

CGRect frame = self.mainScrollView.frame;
frame.origin.x = CGRectGetWidth(frame) * (count-1); 

UIScrollView *overlayScrollView = [[UIScrollView alloc] initWithFrame:frame];
[self.mainScrollView addSubview:overlayScrollView];

// moves contentView one frame beyond
frame.origin.x = CGRectGetWidth(frame);
UIView *contentView = [[UIView alloc] initWithFrame:frame];
contentView.backgroundColor = [UIColor redColor];
[overlayScrollView addSubview:contentView];

overlayScrollView.contentSize = CGSizeMake(overlayScrollView.frame.size.width * 2, overlayScrollView.frame.size.height);
overlayScrollView.pagingEnabled = YES;

我在嵌套的UIScrollViews上搜索了SO,因此使用以下方法将UIScrollView子类化为mainScrollView:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

    for (UIView *child in self.subviews){
    if([child isMemberOfClass:[UIScrollView class]])
        if(CGRectContainsPoint(child.frame, point))
            return child;
    }
    return self;
}

但它不起作用。我的代码可能是错的。 hitTest确实返回了child(overlayScrollView)但没有滚动。有任何建议如何编码吗?

0 个答案:

没有答案