UTableView 当前可见单元格 indexPath.row
Posted
技术标签:
【中文标题】UTableView 当前可见单元格 indexPath.row【英文标题】:UTableView current visible cell indexPath.row 【发布时间】:2021-02-25 03:35:20 【问题描述】:我想要屏幕上当前可见单元格的 indexPath.row(目前我的单元格填满了整个屏幕,所以它应该只有一个)
print(tableView.indexPathsForVisibleRows)
//PRINT OUT
Optional([0, 0]) -row 0, screen just loaded
Optional([[0, 0], [0, 1]]) -row 1
Optional([[0, 1], [0, 2]]) -row 2
Optional([[0, 2], [0, 3]]) -row 3
Optional([[0, 2], [0, 3]]) -row 2 (scrolled back up)
print(tableView.visibleCells)
[]-not working
[]-not working
我尝试了上面的代码,但我如何只获得 Y(行)号?当我滚动时它也会打印出数组。如何只获取当前可见单元格?
我不能使用 cellForRowAt: indexPath。
【问题讨论】:
【参考方案1】:您应该尝试获取表格的中心位置,然后将其转换为获取该位置单元格的 indexPath。在scrollViewDidEndDecelerating
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
let visibleIndexPath = tableView.indexPathForRow(at: CGPoint(x: tableView.bounds.midX, y: tableView.bounds.midY))
// do whatever you want with your indexpath
【讨论】:
以上是关于UTableView 当前可见单元格 indexPath.row的主要内容,如果未能解决你的问题,请参考以下文章
预加载下一个(当前不可见)单元格 UICollectionView
在旋转时调整 UICollectionViewCells 的大小会更改当前可见的单元格 [重复]
UITableViewCell 外观只改变当前视图中的单元格