前言:
今天没事自己写了个UICollectionView也就是九宫格的demo ,遇到几个小问题,虽然都很快解决了,但是这里还是把它记录下来,以后方便查阅。
(UICollectionView 一下用九宫格代称)废话不多说了,直接开始。
创建一个UICollectionView
首先,创建一个UICollectionView ,需要设置的几个代理 UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout。九宫格 跟UITableView类似,这里只是实现最简单的代理方法。
- (UICollectionView *)collectionView
{
if (_collectionView == nil) {
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
_collectionView = [[UICollectionView alloc]initWithFrame:self.view.frame collectionViewLayout:flowLayout];
_collectionView.delegate = self;
_collectionView.dataSource = self;
[_collectionView registerClass:[CollectionViewCell class] forCellWithReuseIdentifier:CellIdentifier];
_collectionView.backgroundColor = [UIColor grayColor];
}
return _collectionView;
}
其中_collectionView 是我创建的九宫格,CollectionViewCell 是我创建的自定义Cell,这个下面再讲。
上面我就碰到了了一个小问题,其实也是我自己不细心的原因,但是也是容易出错的地方:
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
_collectionView = [[UICollectionView alloc]initWithFrame:self.view.frame collectionViewLayout:flowLayout];
上面的
UICollectionViewFlowLayout ,这个类是九宫格用来实现自动布局的,注意千万不要写错,我就因为写错,写成了
UICollectionViewLayout (这个类我是直接点击去九宫格的初始化方法里面看到的)导致了九宫格显示不出来,其他地方也没有错,
调了好几遍,最后终于发现是这个类写错了,