三种自定义UITableViewCell的方法

一、子类化带xib的UITableViewCell

//1.tableView注册
UINib *nib = [UINib nibWithNibName:@"CustomTableViewCell" bundle:nil];
[tableView registerNib:nib forCellReuseIdentifier:@"CustomTableViewCell"];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    //不带NSIndexPath*,完全复用    
    CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomTableViewCell"];
    //带NSIndexPath*,复用每一个NSIndexPath*的cell
    CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomTableViewCell" forIndexPath:indexPath];
}
//2.tableView没注册,xib中必须注明identifier一致,否则不会复用
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *cellID = @"CustomTableViewCell";
    CustomCell * cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if (cell == nil) {
        //cell必须通过xib文件创建
        cell = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] lastObject];        
    }
    return cell;
}
@end

二、子类化不带xib的UITableViewCell

//1.tableView注册

[table registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    //不带NSIndexPath*,完全复用    
    CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    //带NSIndexPath*,复用每一个NSIndexPath*的cell
    CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

    return cell;
}
//2.tableView没注册
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *cellID = @"CustomTableViewCell";
    //创建cell,用不带NSIndexPath*参数的方法    
    CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if (cell == nil) {
        //用自定义初始化的方法创建
        cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
    }
    return cell;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值