我正在寻找当tableview加载行以适应屏幕时被触发的事件。我知道tableview只加载适合屏幕的行数。我想在加载适合屏幕的行时执行一组代码。
有关如何确定这一点的任何指示?
答案 0 :(得分:0)
我认为您需要实现UITableViewDelegate并覆盖WillDisplay(UITableView,UITableViewCell,NSIndexPath)方法。确保将tableview的委托设置为实现UITableViewDelegate的类。
不幸的是,每个单元格调用WillDisplay,而不是每行调用。
答案 1 :(得分:0)
我不擅长imageView.setImageUri(yourUri);
,所以请从c#
翻译一下。我在下面添加了另一个解决方案,即在Swift
中手动计算可见行。
tableview
var isFirstTime:Bool = true
override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if let indexPaths = tableView.indexPathsForVisibleRows {
if indexPath == indexPaths.last {
if isFirstTime {
self.visibleCellsLoaded()
}
isFirstTime = false
}
}
}
(非常重要)标记会限制您的特定“代码集”(isFirstTime
)仅执行一次。如果你想在每次滚动时执行它,你可以删除它 - 这显然会否定你的问题的目的。
在这里,我们手动计算并获取self.visibleCellsLoaded()
返回我们的内容(结果与之前的方法大致相似)
tableView.indexPathsForVisibleRows