+ (id)customCell {
//对于频繁加载的xib文件,不要使用loadNibName
/* // 1.
return [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class])
owner:nil
options:nil] lastObject];
*/
// 2. UINib专门用来加载xib文件的类
// 苹果建议我们,只要是频繁加载使用的xib文件都要应用UINib类来处理
UINib *nib = [UINib nibWithNibName:NSStringFromClass([self class]) bundle:nil];
return [[nib instantiateWithOwner:nil options:nil] lastObject];
}
+ (id)customCellWithTableView:(UITableView *)tableView {
// YXCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"];
// // 给cell东西 让cell自己加载
// if (cell == nil) {
// cell = [YXCustomCell customCell];
// }
YXCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"];
if (cell == nil) {
// 创建一个cell
}
/**
* 使用注册机制
xib文件上不需要再去加上重用标示
*/
// 注册
// 直接使用类名作为唯一标示符
/**
* 1. 注册 cell 使用唯一的标示符
2. 如果cell 内存复用池中有可以复用的cell,那么就返回可复用的cell
如果没有可以复用的cell,那么就会创建一个新的cell
*/
// NSString *identifier = NSStringFromClass([self class]);
static NSString *identifier = @"YXCustomCell";
UINib *nib = [UINib nibWithNibName:identifier bundle:nil];
[tableView registerNib:nib forCellReuseIdentifier:identifier];
// 去内存池中 选取可用的cell
// 1. 如果有 返回可重用的cell
// 2. 如果没有会 自动创建一个返回给你用
return [tableView dequeueReusableCellWithIdentifier:identifier];
}
UITableView2 - 复用的理解和cell的创建
最新推荐文章于 2024-06-16 17:50:30 发布