嵌套的 ScrollViews 无法正确显示

Posted

技术标签:

【中文标题】嵌套的 ScrollViews 无法正确显示【英文标题】:Nested ScrollViews not displaying properly 【发布时间】:2011-04-18 14:59:55 【问题描述】:

我在尝试实现一对嵌套滚动视图时遇到了一个小问题。 我已经设法实现了它们,但是我所拥有的图像似乎没有正确显示。它们单独很好,但是嵌套的滚动视图似乎改变了框架的大小和位置。

这是我的一些代码,可能证明我做错了什么。

- (void)loadView 

CGRect baseScrollViewFrame = [self frameForBaseScrollView];
baseScrollView = [[UIScrollView alloc] initWithFrame:baseScrollViewFrame];
[baseScrollView     setBackgroundColor:[UIColor blackColor]];
[baseScrollView     setCanCancelContentTouches:NO];
baseScrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
baseScrollView.showsVerticalScrollIndicator = NO;
baseScrollView.showsHorizontalScrollIndicator = YES;
baseScrollView.scrollEnabled = YES;
baseScrollView.pagingEnabled = YES;
//baseScrollView.delaysContentTouches = NO;
baseScrollView.userInteractionEnabled = YES;
baseScrollView.contentSize = CGSizeMake(baseScrollViewFrame.size.width * [self imageCount], baseScrollViewFrame.size.height);

baseScrollView.delegate = self;
self.view = baseScrollView;

[baseScrollView release];

这是用于基本水平滚动视图

CGRect pagingScrollViewFrame = [self frameForPagingScrollView];
pagingScrollView = [[UIScrollView alloc] initWithFrame:pagingScrollViewFrame];
pagingScrollView.pagingEnabled = YES;
pagingScrollView.backgroundColor = [UIColor blackColor];

[pagingScrollView       setCanCancelContentTouches:NO];

pagingScrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
pagingScrollView.showsVerticalScrollIndicator = YES;
pagingScrollView.showsHorizontalScrollIndicator = NO;
pagingScrollView.scrollEnabled = YES;
pagingScrollView.contentSize = CGSizeMake(pagingScrollViewFrame.size.width, pagingScrollViewFrame.size.height * [self imageCount]);

pagingScrollView.delegate = self;

[baseScrollView addSubview:pagingScrollView];

这是用于分页垂直滚动视图。

请有人告诉我我做错了什么。

非常感谢

【问题讨论】:

为什么要使用嵌套滚动视图?单个 scrollView 可以有水平和垂直滚动。您是否尝试将每个行滚动和组合滚动分开? 【参考方案1】:

也许查看您正在实现的委托方法。您正在将两个滚动视图的代表设置为“自我”。在这些方法中,您是否检查了哪个滚动视图调用了它?

根据 imageCount 设置高度和宽度似乎也有点奇怪。例如,如果图像计数为 10,则您将有 100 页(10 页宽 x 10 页高)。

【讨论】:

以上是关于嵌套的 ScrollViews 无法正确显示的主要内容,如果未能解决你的问题,请参考以下文章

无法从嵌套for循环访问父for循环

iOS 模拟器无法正确滚动(M1 + React Native 项目)

为啥我不能在 Laravel 上正确映射嵌套查询? “在 null 上调用成员函数 map()”显示为错误

angular-ui-grid 在嵌套的 ui-views 中无法正确呈现

兼容模式下的 IE9 无法正确显示 CSS 样式

如何创建具有多个子行(嵌套表)的 jQuery 数据表?