UICollectionView的初步认识-Swift

1.初步认识

UICollectionView是iOS6之后引入的一个新的UI控件,它和UITableView有着诸多的相似之处,其中许多代理方法都十分类似。

简单来说,UICollectionView是比UITbleView更加强大的一个UI控件,有如下几个方面:

1. 支持水平和垂直两种方向的布局

2. 通过layout配置方式进行布局

3. 类似于TableView中的cell特性外,CollectionView中的Item大小和位置可以自由定义

4. 通过layout布局回调的代理方法,可以动态的定制每个item的大小和collection的大体布局属性

5. 更加强大一点,完全自定义一套layout布局方案,可以实现意想不到的效果

2.创建UICollectionView

代码:

func initCollectionView() {
        //0.初始化一定参数
        let itemWidth: CGFloat = (UIScreen.mainScreen().bounds.size.width - 4 * 8) / 3
        //1.创建一个layout布局类
        let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout.init()
        //2.设置布局方向为垂直流布局 Vertical-垂直 Horizontal-横屏
        layout.scrollDirection = .Vertical
        layout.itemSize = CGSizeMake(itemWidth, 44)
        //3.行与行之间的间距最小距离-列与列之间的间距最小距离
        layout.minimumLineSpacing = 8
        layout.minimumInteritemSpacing = 8
        //3.1 设置分区的EdgeInset
        layout.sectionInset = UIEdgeInsetsMake(8, 8, 8, 8)
        //4.创建UICollectionView
        let myCollectionView: UICollectionView = UICollectionView.init(frame: self.view.bounds, collectionViewLayout: layout)
        myCollectionView.backgroundColor = UIColor.clearColor()
        //5.继承协议
        myCollectionView.delegate = self
        myCollectionView.dataSource = self
        //6.从一个class或者xib文件进行cell(item)的注册
        myCollectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "cellID")
        //myCollectionView.registerNib(UINib.init(nibName: "", bundle: nil), forCellWithReuseIdentifier: "")
        //7.头视图或者尾视图view的注册
        //UICollectionElementKindSectionHeader-头视图 UICollectionElementKindSectionFooter-尾视图
        /* myCollectionView.registerClass(<#T##viewClass: AnyClass?##AnyClass?#>, forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "")
         myCollectionView.registerNib(UINib.init(nibName: "", bundle: nil), forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "") */
        //8.设置是否允许选中 默认true
        myCollectionView.allowsSelection = true
        //9.设置是否允许多选 默认false
        myCollectionView.allowsMultipleSelection = false
        self.view.addSubview(myCollectionView)
    }

你可能感兴趣的:(UICollectionView的初步认识-Swift)