确定UITableView何时加载iOS中的可见行集

时间:2018-03-21 21:49:21

标签: ios uitableview xamarin.ios

我正在寻找当tableview加载行以适应屏幕时被触发的事件。我知道tableview只加载适合屏幕的行数。我想在加载适合屏幕的行时执行一组代码。

有关如何确定这一点的任何指示?

2 个答案:

答案 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