as *_*diu 5 uitableview ios swift
我正在使用以下代码来确定屏幕上是否显示最后一个屏幕给用户:
override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if indexPath.row == collection.count - 1 {
print("last cell is seen!!")
print(cell.frame)
}
}
Run Code Online (Sandbox Code Playgroud)
这适用于小屏幕,用户必须滚动才能到达所需的单元格.但是,在整个表格可见的大屏幕上,此方法不起作用.有没有办法确定屏幕底部到最后一个单元格之间的距离UITableView?
任何帮助将不胜感激.谢谢.
编辑:这是我想要完成的.
如果(最后一个单元格可见&&它距屏幕底部超过100dp){在屏幕底部显示一个固定按钮}否则{添加按钮到tableview的页脚视图,以便用户可以向下滚动到按钮}
小智 3
我刚刚为您创建了一个项目,向您展示一种可能的解决方案(有很多)。
基本上你只需要获取最后一个单元格位置,使用
guard let lastCell = tableView.cellForRow(at: IndexPath(row: tableView.numberOfRows(inSection: 0)-1, section: 0)) else {
return
}
let lastCellBottomY = lastCell.frame.maxY
Run Code Online (Sandbox Code Playgroud)
然后知道了tableView的高度,就可以轻松计算出最后一个单元格到屏幕底部的距离:
let delta = tableHeight - lastCellBottomY
Run Code Online (Sandbox Code Playgroud)
并检查这个距离是否足以让您显示固定按钮:
if delta > 55 {
// ...show button
} else {
// ...hide button
}
Run Code Online (Sandbox Code Playgroud)
对于动态按钮(当用户滚动时要在 tableView 的最后一个单元格下方添加的按钮),您只需添加一个带有自定义单元格的新部分来表示您的按钮。
您可以通过此链接查看整个想法:
https://www.dropbox.com/s/7wpwv6737efnt5v/ButtonTable.zip?dl=0
如果您有任何疑问,请告诉我:)
| 归档时间: |
|
| 查看次数: |
2819 次 |
| 最近记录: |