iOSbug日志 - tableviewcell复用

Posted 阿杜的技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOSbug日志 - tableviewcell复用相关的知识,希望对你有一定的参考价值。

试了三种方法 列在下面

新建cell 文件

包括.h .m .xib 

然后在xib文件加上一个标签,目的是复用这个cell

 

一,在要调用的listcell中初始化一个类方法

//+(ListCell *)cellwithTableView:(UITableView *)tablaeView;

 

 

//+(ListCell *)cellwithTableView:(UITableView *)tablaeView

//{

//    static NSString *identifier = @"ListCell";

//    ListCell *cell = [tablaeView dequeueReusableCellWithIdentifier:identifier];

//    if (!cell) {

//        cell = [[[NSBundle mainBundle]loadNibNamed:@"ListCell" owner:self options:nil]lastObject];

//    }

//

//    return cell;

//

//}

 

 

二,直接在tableviewcontroller中注册nib

 

- (void)viewDidLoad {

    [super viewDidLoad];

    

    

    [self.tableView registerNib:[UINib nibWithNibName:@"ListCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"ListCell"];

    // Uncomment the following line to preserve selection between presentations.

    // self.clearsSelectionOnViewWillAppear = NO;

    

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.

    // self.navigationItem.rightBarButtonItem = self.editButtonItem;

}

 

 

 

    ListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ListCell"];

 

 

 

三,用registerClass:[ListCell class]但使用之前必须初始化 cell

 

-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

{

    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {

        self = [[[NSBundle mainBundle]loadNibNamed:@"ListCell" owner:self options:nil]lastObject];

    }

 

    return self;

}

 

 

 

 

三种方法结果一样

 

ps:注意,awakefromnib方法在每一次调用cell的时候都会用 

输出结果如下

技术分享

以上是关于iOSbug日志 - tableviewcell复用的主要内容,如果未能解决你的问题,请参考以下文章

将自定义 UIView 添加到 TableViewCell

解析和斯威夫特。从 Parse 关系中设置 tableViewCell 附件类型

如何修复 TableViewCell 约束冲突?

在 UITableView 上实现动态高度

如何在uitableViewCell中保存UIButton的状态?

漏洞log4j2远程执行代码复现实操代码例子