创建 UITableViewCell的方式的三种方式

1.传统创建cell的方式

    // 0.重用标识
    // 被static修饰的局部变量:只会初始化一次,在整个程序运行过程中,只有一份内存
    static NSString *ID = @"cell";
    
    // 1.先根据cell的标识去缓存池中查找可循环利用的cell
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    
    // 2.如果cell为nil(缓存池找不到对应的cell)
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    }
    

xib文件

 // static修饰局部变量:可以保证局部变量只分配一次存储空间(只初始化一次)
            static NSString *ID = @"ChildTableViewCell";
            
            // 1.通过一个标识去缓存池中寻找可循环利用的cell
            ChildTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
            
            // 2.如果没有可循环利用的cell
            if (cell == nil){
                cell = [[[NSBundle mainBundle] loadNibNamed:@"ChildTableViewCell" owner:nil options:nil] lastObject];
                cell.selectionStyle = UITableViewCellSelectionStyleNone;
                
            }
            cell.num = (int)self.passengerInfoArr.count;
            return cell;

2.通过registerClass创建cell

// 1.创建重用标识
 NSString *ID = @"cell";
- (void)viewDidLoad {
    [super viewDidLoad];
    // 注册cell
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:ID];
    
}
 //2.从缓冲池中取到cell
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

xib文件

 // 注册
    [self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([XMGTopicCell class]) bundle:nil] forCellReuseIdentifier:XMGTopicCellId];

 XMGTopicCell *cell = [tableView dequeueReusableCellWithIdentifier:XMGTopicCellId];

3.在storyboard中创建cell

 static NSString *ID = @"deal";
 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

你可能感兴趣的:(创建 UITableViewCell的方式的三种方式)