用于水平滚动的 UIScrollView 内的 UITableView 无法按预期工作

Posted

技术标签:

【中文标题】用于水平滚动的 UIScrollView 内的 UITableView 无法按预期工作【英文标题】:UITableView inside the UIScrollView for horizontal scrolling does not work as expected 【发布时间】:2012-12-21 13:34:41 【问题描述】:

我使用了一个表格视图,其中包含具有不同信息集的单元格,并且不能包含在 tableView 的框架中。所以我确实需要在表格视图中具有水平滚动能力。

由于tableview无法进行水平滚动,因此我计划使用带有水平滚动的scrollView。我在 scrollView 上添加了 tableView。

我面临的问题与滚动视图的内容大小属性无关,滚动视图永远不会滚动超过 256-320 像素的 contentOffset 值 X。

我打算实现如下截图中的效果

【问题讨论】:

那么你现在使用UIScrollView吗? 也许 UITableView 不是要走的路。我建议您使用简单的UIScrollView 并使用自定义UIViews 手动填充它。 是 H2CO3。在 UIScrollView 之上,我添加了 UITableView 一些关于如何在滚动视图中添加表格视图的代码可能会有所帮助 我使用 Interface Builder 完成了所有工作 【参考方案1】:

尝试两件事,

首先将 TableView 高度设置为 total numberOfRows :

tableView.frame.size.y  = numberOfRows * 44;

现在禁用 tableView 滚动

并根据您的需要设置他的scrollView contentSize;

scollerView.contentSize = numberOfRowsintableView

肯定能解决你的问题

【讨论】:

【参考方案2】:

在 ViewDidLoad 中为 ScrollView 设置合适的 ContentSize。

scollerView.contentSize = CGSizeMake(Width,Height);

根据要求计算宽度和高度(您使用的是Tableview,因此您可以将高度与视图高度相同)

那么它肯定会滚动。

【讨论】:

【参考方案3】:

我使用代码实现了整个功能,而没有使用界面构建器。它现在按预期工作。我不知道为什么它在与界面生成器一起使用时不起作用。

【讨论】:

以上是关于用于水平滚动的 UIScrollView 内的 UITableView 无法按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 内的水平 UIStackView 不滚动

分页 UIScrollView 内的 UIScrollView

UIScrollView 内的 UITableViewController 与水平分页

UIpageviewcontroller 内的 UIScrollview

UIScrollView 内的 UITextView

UIScrollView 用于主 UIView 内的较小 UIView