美文网首页
UItableView初始化时register注册cell

UItableView初始化时register注册cell

作者: inoryshu | 来源:发表于2017-08-30 16:03 被阅读75次

    最近想弄个TabelView,然后发现传统的创建cell的方法除了问题:

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellid forIndexPath:indexPath];

    if (cell == nil) {

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];}

    在初始化tableview的时候我没有使用registerClass和registerNib注册cell,结果tableView没有复用,每条数据都会创建一个cell,没有达到复用的效果!因此:

    若要使用UITableView的复用机制,就必须在初始化UITableView的时候就注册Cell或Header/Footer并制定其Identifier,注册的方式分两种:registerClass和registerNib,具体怎么用呢:

    1.如果你的TableViewCell是只有代码没有xib:

    [self.baseTableView registerClass:[UITableViewCell class]forCellReuseIdentifier:@"CellReuseIdentifier"];

    2.如果TableViewCell是代码加xib的话有以下两种方式注册:

    (1)除了上面那句代码,还需在Cell的.m文件中实现:initWithStyle并自己加载Nib:

    (NSString*)reuseIdentifier {

    self= [super initWithStyle:style reuseIdentifier:reuseIdentifier];

    if(self) {

    NSArray*nibArray = [[NSBundle mainBundle]loadNibNamed:@"HomeTableViewCell"owner:niloptions:nil];

    self= [nibArray lastObject];

    [self  initCell];

    }

    returnself;

    }

    (2).直接使用registerNib进行注册

    [self.baseTableView registerNib:[UINib nibWithNibName:@"HomeTabelViewCell"bundle:nil] forCellReuseIdentifier:@"HomeTabelViewCell"];

    相关文章

      网友评论

          本文标题:UItableView初始化时register注册cell

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