UITableView通过xib加载Cell的两种方法

第一种,加载xib中Cell,需要在xib页面设置identifier,否则每次都会重新创建。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    YXStoreTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"YXStoreTableViewCell"];
    if (!cell) {
        cell =  [[NSBundle mainBundle]loadNibNamed:@"YXStoreTableViewCell" owner:self options:nil].firstObject;
    }
    cell.model = storeArr[indexPath.section];
    return cell;
}

第二种,使用tableview自带方法,配置registerNIb,即可实现重用。无需在xib页面中设置identifier。
注意:如果在xib页面中设置了identifier,则必须与代码中的identifier保持一致。否则崩溃,提示:(reason: ‘cell reuse indentifier in nib (YXStoreTableViewCell1) does not match the identifier used to register the nib (YXStoreTableViewCell)’)

[self.tableView registerNib:[UINib nibWithNibName:@"YXStoreTableViewCell" bundle:nil] forCellReuseIdentifier:@"YXStoreTableViewCell"];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    YXStoreTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"YXStoreTableViewCell"];
    cell.model = storeArr[indexPath.section];
    return cell;
}
    原文作者:天空的羁绊
    原文地址: https://www.jianshu.com/p/d128097692b3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞