gpt4 book ai didi

ios - 检测 UITableViewCell 何时离开屏幕

转载 作者:行者123 更新时间:2023-12-03 18:16:33 27 4
gpt4 key购买 nike

我正在使用自定义创建的 UITableViewCell 实现丰富的 UITableView,我以一种方式在屏幕上显示这些内容,但是一旦它们离开屏幕,我就想把它们拿走请注意,自从它们第二次出现以来,我希望它们以不同的方式显示。认为离开屏幕时会自动“标记为已读”。

我一直在寻找某种方法来检测单元格何时离开屏幕(取消分配或出队或等效),最好在 UITableViewController 类中快速记录 indexPath.row 值,但在 UITableViewCell 中同样好。

我无法以任何标准方式做到这一点。当我在 table 上进行多次 reloadData 调用时,计算它出现的次数似乎是不可能的。

有人有什么想法吗?这看起来有点棘手:)

最佳答案

这是一个老问题,但以防万一有人在寻找,在 iOS6 中,引入了一个新的 UITableViewDelegate 函数,它的作用就是:

- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

它在告诉您何时删除单元格方面做得很好,但是,它非常彻底,因此如果您重新加载单元格,即使是被替换的旧单元格也会触发此委托(delegate)功能。在我的实现中,我只是检查传递的 indexPath 是否仍在数组 tableView.indexPathsForVisibleRows 内。像这样的东西:

- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([tableView.indexPathsForVisibleRows indexOfObject:indexPath] == NSNotFound)
{
// This indeed is an indexPath no longer visible
// Do something to this non-visible cell...
}
}

关于ios - 检测 UITableViewCell 何时离开屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/841042/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com