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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容