以及自定义的BDCell这个继承与UICollectionViewCell 的类中:[Objective-C] 纯文本查看 复制代码- (UICollectionViewCell*) collectionView: (UICollectionView*) collectionView cellForItemAtIndexPath:(NSIndexPath*) indexPath ;
这两个部分进行,小子尽量用简单通俗的语句进行描述分析。[Objective-C] 纯文本查看 复制代码@interface BDCell :UICollectionViewCell
而在UICollectionViewController 中 ,代码如下[Objective-C] 纯文本查看 复制代码-(void)addButton { }
float h =20; //尺寸定义
float w =self.backgroundView.bounds.size.width;
CGRect rect =CGRectMake(0,self.bounds.size.height-h, w, h);
UIButton *btn = [ [ UIButtonalloc ] initWithFrame:rect ];
btn.backgroundColor = [ UIColoryellowColor ];
btn.tag=100; //添加标记,后说
[self.contentView addSubview: btn ]; //加到contentView
}
以上都是最基本的写法,没有过多的描述cell ,也比较粗陋。[Objective-C] 纯文本查看 复制代码[ self.collectionView registerClass:[BDCellclass] forCellWithReuseIdentifier:reuseIdentifier ];
- (UICollectionViewCell*) collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath:(NSIndexPath*) indexPath {
BDCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier: reuseIdentifier forIndexPath:indexPath];
return cell;
}
这样是可行的,那么我们回到我们的自定义cell,内部的问题内部解决。 先不说代码,先说说内部解决的思路?[Objective-C] 纯文本查看 复制代码- (UICollectionViewCell*) collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath:(NSIndexPath*) indexPath {
BDCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier: reuseIdentifier forIndexPath:indexPath];
[cell cherkR ]; //检查是否来自复用池
return cell;
}
理论上我们的问题应该解决了,那么我们来看一下运行的控制台[Objective-C] 纯文本查看 复制代码- (void) checkR {
[[ selfviewWithTag:100] removeFromSuperview];
NSLog(@"听说你这个家伙要把我给组装一下????");
[ self addButton];
}
-(void) addButton {
floath =20;
floatw = self.backgroundView.bounds.size.width ;
CGRectrect = CGRectMake(0,self.bounds.size.height-h, w, h);
UIButton *btn = [[UIButton alloc] initWithFrame:rect];
btn.backgroundColor= [UIColor yellowColor];
btn.tag=100;
[self.contentViewa ddSubview:btn];
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |