gpt4 book ai didi

iphone - 清除 tableView 单元格缓存(或删除条目)

转载 作者:行者123 更新时间:2023-12-03 20:59:10 32 4
gpt4 key购买 nike

我有与此处描述的相同的问题How to purge a cached UITableViewCell

但是我的问题无法通过“重置内容”来解决。

准确地说 - 我使用自定义单元格(自己的类)。运行应用程序时,我可能必须使用不同的“单元类型”。它是同一个类 - 但它有(很多)不同的属性。当然,我总是可以在“PrepareForReuse”中重置所有内容,但我想这不是一个好主意(有很多东西需要重置)。

我的想法 - 我在单元格的构造函数中完成所有这些事情。所有行稍后都将使用这种“单元格类型”。当(很少)出现我必须更改所有行的外观的情况时,我会创建具有不同设置的此类单元格的新实例。现在我想用这个新的单元替换排队的单元。

我尝试过简单地使用相同的 cellidentifier 调用构造函数(希望它能够替换现有的),但这不起作用。

我也没有找到“ClearReusableCells”或类似的东西。

有没有办法清除缓存 - 或删除/替换特定项目?

曼弗雷德

最佳答案

使用不同的标识符创建每种细胞类型(即使它们使用相同的细胞类别)。因此,如果您有 2 种细胞类型,请定义 2 个标识符并将它们分开。

不知道你的问题出在哪里。您有一堆具有外观 A 的单元格,然后用户采取一些操作,它们需要变成外观 B。如果您调用 reloadData 或更精细的方法之一,您的数据源将被再次调用对于 cellForRowAtIndexPath。只需实现此方法即可分离两种细胞类型。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString* identifier = which mode are we in
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:identifier]; // Will return nil if we haven't got this cell
if( !cell ) {
// Create different cell type based on the identifier
}
return cell;
}

关于iphone - 清除 tableView 单元格缓存(或删除条目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2402079/

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