cell的3三种重用方法

cell的重用


重用标识符可以定义为全局的

static NSString *const reuseIdentify = @“Cell”;

1.一个类(含.h,.m)

例如

RightDetailCell.h文件

RightDetailCell.m文件

//重写父类的初始化方法

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

    

    self = [superinitWithStyle:UITableViewCellStyleValue1reuseIdentifier:reuseIdentifier];

    if (self) {

        self.accessoryType =UITableViewCellAccessoryDisclosureIndicator;

    }

    returnself;

}

ViewController.m 的生命周期注册重用标识符(ViewDidLoad里或其他懒加载位置)

#import "RightDetailCell.h"

[self.tableView registerClass:[RightDetailCell classforCellReuseIdentifier:@"RDCell"];

再在cellForRowAtIndexPath或者cellForItemAtIndexPath里从队列取出重用

RightDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:@"RDCell" forIndexPath:indexPath];


2.一个带xib的类(含.h .m .xib)

NormalCell.h文件

@interface NormalCell : UITableViewCell

@property (weak,nonatomic)IBOutletUIImageView *iconIV;

@property (weak,nonatomic)IBOutletUILabel *titleLb;

@property (weak,nonatomic)IBOutletUILabel *detailLb;

NormalCell.m文件

NormalCell.xib文件





1).在xib里画出需要使用的参数(view imageView label等) 并写出cell的标志符

2).将xib的cell里面的参数连接到.h的属性中(公开的)

3).在指定controller里面根据xib注册重用标识符

#import "NormalCell.h"

[self.tableView registerNib:[UINib nibWithNibName:@"NormalCell" bundle:nilforCellReuseIdentifier:@"normalCell"];

4)再在cellForRowAtIndexPath或者cellForItemAtIndexPath里从队列取出重用

NormalCell *cell = [tableView dequeueReusableCellWithIdentifier:@"normalCell" forIndexPath:indexPath];


3.纯xib

DaRenCell.xib文件  

重用标识符DaRenCell写上





if (indexPath.row ==2) {

    UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:@"DaRenCell"];

    if (cell ==nil) {

        cell = [[NSBundlemainBundle]loadNibNamed:@"DaRenCell"owner:niloptions:nil].firstObject;

     }

     return cell;

}



//1.有多少个分组

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    return4;

}

//2.某个分组中有几个cell

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return [@[@3,@2,@3,@1][section]integerValue];

}

//3.cell样式

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值