UITableView加载自定义可重用cell的两种方法的区别(
2016-05-19 本文已影响971人
赵奥勋
1.原始方法
假如UITableViewCell是我们自定义的cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identify];
这个方法需要以下代码:
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identify];
}
2.iOS6以后出现的方法
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identify forIndexPath:indexPath];
这个方法在cell为空时会自己创建cell,不需要以下代码:
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identify];
}
但是在创建tableView的时候需要告诉编译器按照什么样子创建cell,所以要给tableView注册自定义的cell,不注册就会崩溃:
[tableView registerClass:[自定义cell的类名 class] forCellReuseIdentifier:@"customCell"];
另外
UICollectionView加载自定义可重用的cell只有一种方法:
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identify forIndexPath:indexPath];
类似UITableView的第二种方法,在创建UICollectionView的时候需要注册自定义的cell,不注册会崩溃。