第一步:在ViewColltroller拖进一个 Collection View 调整位置,设置控制它的文件:ViewController
第二步:遵守协议:
至少要有前两个!!!注意实现必要方法!!!!
- ( NSInteger )collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
- ( UICollectionViewCell * )collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
第三步:设置代理和数据源是什么。
_collectionView.delegate=self;
_collectionView.dataSource=self;
第四步:建立XIB 建立一个类,注意勾选 Also Create XIB File ……选择同时创建一个Xib并注意选择UICollectionViewCell作为父类,此时会自动生成三个文件: 在新建的XIB里绘制Cell的结构。
首先修改每一个Cell的大小 给Cell取别名 给控件拖线
注意:可选类是Cell类型 此处Cell是由于取别名自动变化,如果别名不是Cell就可以是别的
第五步:在与XIB一起生成的文件中提取XIB,注意使用方法要描述位置!!!
- (id)initWithFrame:(CGRect)frame {
self=[superinitWithFrame:frame];
NSArray *array=[[NSBundlemainBundle]loadNibNamed:@"CollectionViewCell"owner:selfoptions:nil];
self=[array lastObject];
returnself;
}
第六步:在ViewController中在实现必要方法时先引入包, 为了可复用Cell,因此我要registerClass
[_collectViewregisterClass:[CollectionCellclass] forCellWithReuseIdentifier:@"Cell"];
之后绘制单元元素
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
//找寻可复用的Cell
staticNSString *reuse = @"Cell";
CollectionCell *cell = [ collectionView dequeueReusableCellWithReuseIdentifier:reuse forIndexPath:indexPath];
//import 图片
//利用路径找到图片信息
NSString *imageName = [NSStringstringWithFormat:@"%.2ld", indexPath.row + 1 ];
cell.cellImageView.image = [UIImageimageNamed: imageName];
cell.cellLabel.text = imageName;
return cell;
}
注意,如果运行后元素无法完全显示,是由于控件元素单元格过于小,设置元素大小利用方法:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
returnCGSizeMake(180,180);
}