一:cell复用原理:
UITableView创建之后,会维持一个UITableViewCell的复用池;当复用池中没有可复用的UITableViewCell时,会创建新的UITableViewCell,用于显示;当复用池中有可复用的UITableViewCell时,则会取出复用池中的UITsbleViewCell,用于cell显示。
二:cell创建:
当使用dequeueReusableCellWithIdentifier:复用UITableViewCell时,UITableView不需要事先注册指定类型的UITableViewCell;这样通过dequeueReusableCellWithIdentifier:方法获取的复用UITableViewCell可能为nil,如果获取的复用UITableViewCell为nil,开发者需要手动创建一个相同类型的UITableViewCell;
static NSString *identifier = @"TableViewCell";
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (!cell) {
cell = [[TableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
当使用dequeueReusableCellWithIdentifier:forIndexPath:复用UITableViewCell时,UITableView需要事先注册指定类型的UITableViewCell;因为通过该方法获取复用的UITableViewCell时,如果获取的复用cell为nil,则在runtime时,会创建指定类型的UITableViewCell。
TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier forIndexPath:indexPath];