【发布时间】:2019-01-22 08:10:07
【问题描述】:
我在UITableView(或UICollextionView)的底部添加一个视图,但不是作为单元格或页脚,而只是将其添加到表格视图本身(因此,添加到UIScrollView)然后播放与滚动的contentInset。这样做的目的是将视图保持在表格内容的底部,而不是在内容的末尾。这样,如果内容短于表格的边界,则视图可见(左图),但如果内容较高,则视图显示在内容的末尾(右图)。
这是代码的摘录:
let yCoord = collectionView.contentSize.height >= view.frame.height - viewHeight
? collectionView.contentSize.height
: view.frame.height - viewHeight
let bottomView = UIView(frame: CGRect(x: 0, y: yCoord, width: collectionView.contentSize.width, height: viewHeight))
collectionView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: viewHeight, right: 0)
collectionView.addSubview(bottomView)
我想知道这种方法是否会以任何方式被认为是有害的,例如,AL 问题、旋转、重新加载表......我没有发现任何问题,实际上这是一种非常相似的方法iOS 6 之前的 pull-to-refresh 功能,但我宁愿在将其投入生产之前确定它。
如果这可以被认为是一个问题,除了添加新单元格之外,您还提出了哪种解决方案?
【问题讨论】:
-
如何计算 yCoord ?为什么不使用这些计算来决定是否应该将视图添加到我们的表格视图上方或作为 tableViewFooterView ?在这里,即使内容比表格的边界短,用户也可以稍微滚动表格视图(如果您将 alwaysBounceVertical 设置为 false,但这不是本机行为)
-
大家好。我刚刚发布了我的代码的摘录,但它有效。我不是要一个可行的解决方案,而是一个更好的解决方案。我的意思是,我认为检查内容偏移的坐标等比那样做更复杂,恕我直言。无论如何,我添加了完整的代码。
标签: ios swift uitableview uiscrollview uicollectionview