IOS学习之collectionView的使用

来源:互联网 发布:nginx跳转 域名不变 编辑:程序博客网 时间:2024/05/16 06:30

1、首次创建初始化时候肯定会遇到以下错误:

'UICollectionView must be initialized with a non-nil layout parameter'

解决办法:使用一个非空的layout初始化集合视图,具体代码:

源代码:

WBSearchController *search = [[WBSearchController alloc] init];

修改后代码:

UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
<pre name="code" class="html">WBSearchController *search = [[WBSearchController alloc] initWithCollectionViewLayout:layout];

此时问题解决微笑

2、集合视图的布局控制是采用layout来控制的,具体使用的方法:

    layout.itemSize =CGSizeMake(60,100);//每个网格的尺寸

    layout.minimumInteritemSpacing =10;//item左右之间距离

    layout.minimumLineSpacing =10;//item上下距离

    layout.sectionInset =UIEdgeInsetsMake(10,10,10,10);//上下左右距离

3、修改背景颜色

  首先,使用Log来打印一下view和collectionView

    MyLog(@"%@ \n %@ \n %@", self.view, self.collectionView, self.view.subviews);

得到的结果如下:

<<span style="background-color: rgb(255, 102, 102);">UICollectionViewControllerWrapperView</span>: 0x7b724440; frame = (0 20; 320 548); autoresize = W+H; layer = <CALayer: 0x7b724780>>  <<span style="background-color: rgb(255, 102, 102);">UICollectionView</span>: 0x7c858800; frame = (0 0; 320 548); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x7b72dc70>; layer = <CALayer: 0x7b727000>; contentOffset: {0, 0}; contentSize: {0, 0}> collection view layout: <UICollectionViewFlowLayout: 0x7ba90660>  (    "<<span style="background-color: rgb(255, 153, 102);">UICollectionView</span>: 0x7c858800; frame = (0 0; 320 548); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x7b72dc70>; layer = <CALayer: 0x7b727000>; contentOffset: {0, 0}; contentSize: {0, 0}> collection view layout: <UICollectionViewFlowLayout: 0x7ba90660>")

可以看出:
self.collectionView是<span style="font-family: Arial, Helvetica, sans-serif;">self.view的</span><span style="font-family: Arial, Helvetica, sans-serif;">subview,所以设置背景颜色,应该使用以下的代码:</span><pre name="code" class="html"><pre name="code" class="html"><p class="p1"><span class="s1">self</span><span class="s2">.</span><span class="s3">collectionView</span><span class="s2">.</span><span class="s3">backgroundColor</span><span class="s2"> = [</span><span class="s3">UIColor</span><span class="s2"> </span><span class="s4">redColor</span><span class="s2">];</span></p>

4、当cell不能布满整个屏幕,但仍想有上拉下拉效果,需要设置scollView里面的属性:

 self.collectionView.alwaysBounceVertical =YES;

既可以实现上下拖动效果

0 0
原创粉丝点击