ios 中registerClass的作用

来源:互联网 发布:淘宝被扣12分能恢复吗 编辑:程序博客网 时间:2024/04/28 17:28

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 只有后一种写法。

1 0
原创粉丝点击