如何滚动到 UITableView 或 UICollectionView 中的最后一个单元格之外
Posted
技术标签:
【中文标题】如何滚动到 UITableView 或 UICollectionView 中的最后一个单元格之外【英文标题】:How to scroll beyond the last cell in a UITableView or UICollectionView 【发布时间】:2019-07-14 16:39:27 【问题描述】:我想要一个 tableView(和 collectionView)滚动到最后一个单元格之外。 也就是说,当滚动到最后一个单元格时,我希望 tableView 继续滚动到最后一个单元格之外 200 点。
我试过了:
tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 200, right: 0)
但是这段代码的行为就像改变框架一样(整个 tableView 向上移动 200 点)。这不是我想要的。
【问题讨论】:
【参考方案1】:在表格视图中,您可以添加所需高度的视图作为表格视图的页脚。
let footer = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 200))
self.tableView.tableFooterView = footer
根据外观,您可能需要设置页脚视图的背景颜色。
对于集合视图,您可以为集合视图的最后一个部分设置节页脚。
【讨论】:
【参考方案2】:收藏视图
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets
// Section Insets
没有直接的方法可以使用UITableView
执行此操作,但您可以使用tableView(_ tableView: UITableView, viewForFooterInSection section: Int)
创建页脚视图并使用tableView(_ tableView: UITableView, heightForFooterInSection section: Int)
为最后一部分添加额外的高度,从而产生滚动效果。
【讨论】:
这个方法也提升了collectionView,而不是增加我想要的可滚动区域。 你想增加可滚动区域是什么意思?喜欢增加滚动视图的框架大小? 是的,类似的。我有一个全屏的 tableView,但底部也有一个重叠的按钮。所以最后一行出现在这个按钮的后面。我想要的是让 tableView 向下滚动更多,以便最后一个单元格出现在按钮上方。 您可以通过为最后一部分创建页脚视图来做到这一点。使其成为表格视图的宽度,并手动将高度设置为您想要的任何值。这可以是一个清晰的视图,使它看起来像表格视图过度滚动。【参考方案3】:使用尺寸检查器的简单方法。
在 xib 或故事板中选择集合视图,转到大小检查器。 将页脚大小中的值设置为 30 40 或根据您的需要。 运行它。滚动现在超出集合视图的实际高度。
【讨论】:
以上是关于如何滚动到 UITableView 或 UICollectionView 中的最后一个单元格之外的主要内容,如果未能解决你的问题,请参考以下文章
UITableView,如何修复页脚,使其在滚动时永远不会向上或向下移动?
如何滚动uitableview和顶部的部分标题,可见并滚动到