滚动视图中不可滚动的表视图

Posted

技术标签:

【中文标题】滚动视图中不可滚动的表视图【英文标题】:Un-scrollable table views inside scroll view 【发布时间】:2017-02-01 13:27:45 【问题描述】:

我使用了 UIScroll 视图。它有一个 contentView(UIView 类型),它又有一个 questionView(UIView)和 2 个表格视图(UITableView)。我希望 questionView 和表格视图一起滚动,所以我禁用了表格视图的滚动,希望 scrollView 能够处理滚动。但它没有发生。我怀疑问题出在不可滚动的表格视图上,因为滚动视图无法识别其 contentView 的正确高度,因此无法滚动。为了启用滚动,我添加了:

self.questionTableView.scrollEnabled = self.answerTableView.scrollEnabled = NO;
self.scrollView.delegate = self;
_scrollView.scrollEnabled = YES;

我阅读了几个关于堆栈溢出的问题,但没有一个符合我的要求。

【问题讨论】:

请说出拒绝投票的原因。我会改进的 你的问题太宽泛了。问题是什么?你的滚动视图不滚动吗?为什么滚动视图中有一个 tableView ?最简单的方法是使用一个 tableView 并使用这些部分。 O 所以我可以有一个包含 2 个部分的 1 个主表视图。问题视图的第一部分和容纳 questionTableView 和 answerTableView 的下一部分(最后 2 个表视图彼此相邻)。 是的。您可以控制 tableView 中的每个部分/行属性! 听起来不错。谢谢! 【参考方案1】:

在表格加载后设置滚动视图内容大小

float sizeOfContent = 0;
 NSInteger questionTblHight = self.questionTableView.contentSize.height;
 NSInteger answerTbHight = self.answerTableView.contentSize.height;

sizeOfContent = questionTblHight+answerTbHight;

scrollView.contentSize = CGSizeMake(scrollView.frame.size.width, sizeOfContent);

【讨论】:

我尝试根据表格的高度更改内容大小,但没有成功。 确保某一点 1.设置表格数据加载后的内容大小 2.添加 UIScrollViewDelegate 谢谢!有用!!截至目前,我在每个 cellForRowAtIndexPath 之后设置内容大小。是否有任何本机方法来识别是否所有单元格都已重新加载?我不想使用 NSTimer 等等。 ***.com/questions/4163579/…这个链接帮你 感谢您的链接。在第一个屏幕中可见的单元格是可点击的,但向下滚动后,即使我可以看到单元格但它们不可点击。我试过 _scrollView.delaysContentTouches = YES;也是,但没有运气

以上是关于滚动视图中不可滚动的表视图的主要内容,如果未能解决你的问题,请参考以下文章

滚动视图内的不可滚动的tableview

滚动视图内的UIButton不可单击

iOS 嵌套滚动视图——一直滚动到超级视图?

在 XCode 中平滑滚动视图和表格视图之间的滚动过渡

UWP 独立滚动视图

加载滚动视图时性能不佳