滚动到 UITableView 框架之外

Posted

技术标签:

【中文标题】滚动到 UITableView 框架之外【英文标题】:Scroll outside of UITableView frame 【发布时间】:2016-01-18 14:16:48 【问题描述】:

如何在UITableView 框架之外滚动整个UITableView 内容? 设置table.scrollIndicatorInsets 不会让向上滚动并且内容消失在顶部的另一个视图后面。

【问题讨论】:

我可能最终会将 UITableView 上方的所有内容放入一个单元格中,并将其作为第一个单元格放入其中。这将允许“真正的” UITableView 内容向上滚动并覆盖所有屏幕。 【参考方案1】:

试试这个:

在视图加载完成后,例如在 viewDidAppear:

CGFloat oldContentHeight = tableView.contentSize.height;
tableView.contentSize = CGSizeMake(tableView.contentSize.width, oldContentHeight + tableView.bounds.size.height);

更新了答案。

【讨论】:

设置 tableView.contentSize 不允许它的内容滚动到 tableView 框架边界之外。它只会使内容尺寸变大,仅通过scrollView框架呈现。【参考方案2】:

选择表格视图-> 进入属性指示器-> 勾选“剪辑到边界”。 完成

【讨论】:

【参考方案3】:

正如@Tushar 指出的那样,在这里设置视图的大小可能是正确的方法,但是如果您有一个非常长的 tableview,则将 contentview 的大小加倍可能有点矫枉过正。我建议改为添加当前窗口的大小。

CGFloat oldContentHeight = tableView.contentSize.height;
CGFloat windowHeight = [[[UIApplication sharedApplication] delegate] window].frame.size.height);
tableView.contentSize = CGSizeMake(tableView.contentSize.width, oldContentHeight + windowHeight);

【讨论】:

以上是关于滚动到 UITableView 框架之外的主要内容,如果未能解决你的问题,请参考以下文章

如何滚动到 UITableView 或 UICollectionView 中的最后一个单元格之外

将 UITableView 单元格滚动到表格边界之外

UITableView 在旋转时使用自动布局调整大小

iOS UITableView在过滤时滚动插入

Xcode 6 - 在 UITableView 滚动范围之外添加标签

在滚动视图中滚动表格视图