首先建立一個Single View Application,而後在stroyboard已有的View Collection中拖入一個UICollectionView,大小本身調節。swift
而後按住option鍵並點擊項目中的ViewController.swift文件,使窗口分屏。而後按住control鍵鼠標點擊UICollectionView而後拖到ViewController中合適位置,命名爲collectionView。markdown
ViewController實現UICollectionViewDelegate,UICollectionViewDataSource這兩個協議。
ide
在viewDidLoad方法中加入以下代碼。編碼
//設置代理與數據源 collectionView.delegate = self; collectionView.dataSource = self;
接下來須要註冊UICollectionViewCell類,使用默認的Cell,其中須要一個重用UICollectionViewCell的標識,因此爲了方便起見在ViewController中添加一個變量,其中具體內容能夠自定義。spa
var identifier = "collectionView"
在viewDidLoad中繼續添加以下代碼用來註冊Cell代理
//註冊cell類 collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: identifier)
設置collectionView的尺寸,我這裏設爲與屏幕等寬同高code
//設置UICollectionViewCell的尺寸 collectionView.bounds = UIScreen.mainScreen().bounds
實現了UICollectionViewDataSource協議,就須要實現協議中的非option方法,能夠直接去UICollectionViewDataSource裏面複製這兩個方法,能夠看到這兩個方法的原型。coffeescript
如今在ViewController中實現這兩個方法圖片
爲了方便起見,這裏分組的個數使用硬編碼,返回10ip
//該方法用來返回分組中cell的個數,因爲示例只有一個分組,因此只須要返回該分組中cell的個數便可 func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 10 }
實現func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize方法
//該方法返回對應的cell func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { //利用重用獲取cell var cell = collectionView.dequeueReusableCellWithReuseIdentifier(identifier, forIndexPath: indexPath) as! UICollectionViewCell //在獲取到的cell中添加一個自定義的UILabel var label = UILabel(frame: CGRectMake(0, 0, 100, 100)) //用當前序號做爲label內容 label.text = String(indexPath.item) //切記,要把空間添加到cell的contentview下! cell.contentView.addSubview(label) //設置cell的背景色 cell.backgroundColor = UIColor.blueColor() return cell }
最後,若是須要設置一下cell的尺寸,須要ViewController實現UICollectionViewDelegateFlowLayout協議。而且實現sizeForItemAtIndexPath方法。
//該方法返回的CGSize爲Cell的尺寸 func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { return CGSizeMake(100, 100) }
最終效果: