第一种,加载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;
}