美文网首页iOSiOS开发技巧征服iOS
UITableViewCell的prepareForReuse方

UITableViewCell的prepareForReuse方

作者: rxdxxxx | 来源:发表于2016-02-25 14:37 被阅读3417次

原链接

cell被重用如何提前知道? 重写cell的prepareForReuse官方头文件中有说明.当前已经被分配的cell如果被重用了(通常是滚动出屏幕外了),会调用cell的prepareForReuse通知cell.注意这里重写方法的时候,注意一定要调用父类方法[super prepareForReuse] .这个在使用cell作为网络访问的代理容器时尤其要注意,需要在这里通知取消掉前一次网络请求.不要再给这个cell发数据了.

// if the cell is reusable (has a reuse identifier), 
// this is called just before the cell is returned from the table view method dequeueReusableCellWithIdentifier:.  
// If you override, you MUST call super.

- (void)prepareForReuse
{
    [super prepareForReuse];
}

自定义UITableViewCell的方法有很多 发现一些人都会遇到自己定义的cell里面图片错乱的问题 这个问题往往是因为没有实现prepareForReuse这个方法导致的.

UITableViewCell在向下滚动时复用, 得用的cell就是滑出去的那些, 而滑出去的cell里显示的信息就在这里出现了 解决的方法就是在UITableViewCell的子类里实现perpareForReuse方法, 把内容清空掉

在从dequeueReusableCellWithIdentifier取出之后,如果需要做一些额外的计算,比如说计算cell高度, 可以手动调用 prepareForReuse方法.手动调用,以确保与实际cell(显示在屏幕上)行为一致。

    cell = [self dequeueReusableCellWithIdentifier:identifier];
    [cell prepareForReuse];

相关文章

网友评论

  • 酷哥不回头看爆炸:dequeueReusableCellWithIdentifier 再次取出的时候为什么还需要手动调用呢?感觉多此一举啊?
    781b9d90cb96:dequeueReusableCellWithIdentifier可以在别的某个地方获取到Cell
    这时候执行prepareForReuse就有意义了
  • 阿斯兰iOS:For performance reasons, you should only reset attributes of the cell that are not related to content, for example, alpha, editing, and selection state.

本文标题:UITableViewCell的prepareForReuse方

本文链接:https://www.haomeiwen.com/subject/ziwikttx.html