我有一个 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 确实返回了子项(overlayScrollView)但没有滚动。有什么建议如何编码吗?