Code Bye

大神谁能解释下UICollectionView的两种注册cell方式的不同??

第一种:
[self.collectionView registerNib:[UINib nibWithNibName:@”OneTypeViewCell” bundle:nil] forCellWithReuseIdentifier:identer];
第二种:
[self.collectionView registerClass:[GiftViewCell class] forCellWithReuseIdentifier:giftViewCell];


20分
第一种从xib里加载,如果View没有对外属性的话,都不用写个UITabelViewCell的子类(如果是UITableViewCell的子类,在xib的属性栏里修改下就好了);第二种从代码里加载,更加灵活,但是布局得自己手写,同时如果想对父视图的约束进行更新的话,也会方便一些。
总的来说,除了第二种对子类的拓展性更好外,其他都差不多。

20分
这两种方式都是由系统来帮助管理cell的创建,省去了在cellforrow中cell是否为空的判断。registerNib, registerClass 后的代码,告诉系统当cell不能从复用队列中创建时,如何来进行cell的创建。它们的区别楼上基本都说了,但还有一点要注意的是, registerClass是ios 6 之后出现的,它配对于
-(id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath
这个方法

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明大神谁能解释下UICollectionView的两种注册cell方式的不同??