技术专题collectionView

1.集合视图由四个部分组成:

1.1.单元格

1.2.节,也就是视图的一行

1.3.装饰视图,节头和脚

1.4.补充视图,即背景视图

2.集合视图的数据源协议和委托协议:

UICollectionViewDataSource:

协议方法:

2.1 

collection view:numberOfItemsInSection:提供某个节中的列数目,返回的是NSInteger:

2.2 numberOfSectionsInCollectionView:

提供视图中节的个数,返回的是NSInteger 

2.3collectionview: cellForItemAtIndexPath:

为某个单元格提供显示数据,返回的是UIcollectionviewCell

2.4collectionView:viewForSupplementaryElementOfKind:atIndexPath:

为补充视图提供数据


 UICollectionViewdelegate:

协议方法:

选择单元格触发:

-(void)collectionView:didSelectItemAtIndexPath:

不选择单元格触发?

collectionView:diddeselectItemAtIndexPath:

3.集合视图对应的控制类是UIcollectionviewcontroller.

4.集合视图单元格:

在xib 中是有个collection View cell,类似于table View 的cell的设置,需要新建一个cell .类。继承于UICollectionCell。

至于接下来怎么做就和写平常的类的设计相同了。

只是这里有在xib的设置当中,collectionView是有cell size 等等设置, 而在collection view cell 当中也有相同的设置

见代码5.3

5.collectionflowlayout 布局问题:

先对collectionviewlayout不处理?

6.在返回单元格时使用的是这个方法

Cell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];

在这里对cell的一些属性进行赋值,来看看有没有初始化。因为这里是IBoutlet所以就没有初始化。

那在cell里面有initwithframe:(CGRect)frame

{

 self = [super initWithFrame:frame]; 

 if (self) {

//这里一般是自定义单元格的样式,如果没有自定义,这段代码可有可无。可是在xib当中不是已经有frame了嘛。

//来看看代码是什么样子的。

        _scrollView = [[UIScrollView allocinitWithFrame:self.bounds];

        [_scrollView setFrame:CGRectMake(00320480)];

        _scrollView.contentSize = CGSizeMake(320*3480);

        

        [self addSubview:_scrollView];

//UIScrollView 也是UIView.可以把它看做是UIView,就好了。

另外需要引出来的是,初始化UIView ,一种是拖控件,即nib文件。这时候是不需要执行,但是会调用initwithCoder方法,来重新定义我们在xib中已经设置的各项属性。

另外一种就是上面这个方法咯,编写代码咯。

}

return self;

}




你可能感兴趣的:(ios学习笔记)