ios 中registerClass的作用

ios 中registerClass使用注意事项:
registerClass 什么时候需要写,什么时候不需要写?

ios6之后API发生了变化,ios6之前完全不用写,ios6之后根据情况

registerClass是和cell联系在一起的 ,UITableViewCell或UICollectionViewCell

在ios6之前重用cell是这样的

重用方法是这个:

dequeueReusableCellWithIdentifier:

具体实现为:

static NSString *cellIdentifier = @"cellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier;
}

每次重用队列里如果没有可重用的cell,就手动新创建一个cell,

而在ios6以后增加了另一个 寻找重用cell的方法:

dequeueReusableCellWithIdentifier:forIndexPath:
 
  
具体实现为
 
  
 
  
static NSString *cellIdentifier = @"cellIdentifier";
[self.tableView registerClass:[MyCell class] forCellReuseIdentifier:cellIdentifier];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];


这个函数的实现是这样的如果在重用队列里面没有 可重用的cell就自动创建一个cell,无需人工alloc init

可见,如果项目至支持ios6之后,第二种写法比较简洁.而且ios6出现的collectionView 只有后一种写法。

你可能感兴趣的:(Object-C)