关于UITableView的重用和注册机制
1. 这是我们最常见的代码
static NSString *identifier = @"identifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
cell.textLabel.text = @"hello";
}
return cell;
当需要一个cell的时候,先去复用池中找寻,如果没有则会创建,并且给其设定标签。
2. 注册机制
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"identifier"];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"];
return cell;
当需要一个cell的时候,我们先注册一个cell,然后我们调用复用方法,如果复用池中有可用的cell,那么直接返回,如果没有那么注册并创建。
<pre name="code" class="objc"> 3.nib文件
UINib *nib = [UINib nibWithNibName:nibName bundle:nil];
[tableView registerNib:nib forCellReuseIdentifier:nibName];
return [tableView dequeueReusableCellWithIdentifier:nibName];
创建并注册nib,复用如果复用池中有可用的cell那么直接返回,如果没有那么创建并注册给其标签。