ios - 如何改变细胞重用行为?

标签 ios objective-c iphone swift

我有一个tableView,我在其中使用单元格重用。 当我快速滚动时,我可以短暂地看到之前单元格中的标签和其他内容显示在新生成的单元格上。

对于最终用户来说,它可能会出现错误,我正在寻找一种在单元格可见之前缓存或加载单元格的方法,以避免这种情况。

我还写了一个重置​​函数:

func resetCell(cell: UITableViewCell){
        for v in cell.contentView.subviews{
            if let v = v as? UILabel{
                v.text = ""
            }else if let v = v as? UIImageView{
                v.image = nil
            }
        }
    }

但是并没有成功...

有什么想法吗?

最佳答案

为了重置内容,您应该重写 UITableViewCellUICollectionViewCell 子类上的方法 - (void)prepareForReuse; 。以下是执行此操作的示例:

- (void)prepareForReuse {
    _imageView.image = nil;
    _asset = nil;

    [super prepareForReuse];
}

此外,如果您有任何与此单元格相关的下载,prepareForReuse 是取消该下载的最佳位置。

关于ios - 如何改变细胞重用行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32154768/

相关文章:

android - 是否有任何关于移动应用程序中文本大写的指南?

ios - UIFocus.h 文件未找到/无法构建 Objective-C 模块 'UIKit'

objective-c - Swift IOS 中的异或加密

iphone - 以编程方式找出谁对我们的 iPhone 应用程序给予了 5 星评级

iphone - QLPreviewController 删除或添加 UIBarButtonItems

iphone - 在 Xcode 中存档不产生存档

ios - Xcode BoringSSL peer disconnect 导致应用程序在启动时挂起

ios - 更改 Xcode 8 中的签名团队

ios - 弹出到 viewcontroller 编辑文本

ios - UILabel 获取底部空间约束 - 自动布局