iOS之UICollectionView的快速使用

weixin_33866037發表於2016-07-12

之前一直在使用UITableView,一直想找個機會好好使用一下collectionView。今天自己嘗試使用了一下,並且有炫酷效果哦,寫篇文章總結一下,希望對想要使用的你有所幫助。

1.首先我們直接來建立一個collectionView物件

1622672-5a488c3a9df2c618.png

這裡需要注意兩點

a.Frame值 這個可以根據自己的需要設定

b.collectionViewLayout: 這個引數是UICollectionView用來進行展示item佈局的  我們最常使用的是流水佈局

注: 這裡的佈局引數類是一個抽象類,不能初始化物件,我們在開發過程中一般使用它的子類UICollectionViewFlowLayout 來設定

//1.1 常用流水佈局

UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];

2.我們可以指定代理物件

1622672-dabdd2810413afeb.png

此時類比UITableView 我們就要遵守代理協議,實現資料來源方法

1622672-28a18c2fbac0777b.png

到了這一步看似差不多可以了,不過這裡有一個特別注意的點,就是UiCollectionView在使用的時候必須註冊cell

1622672-5ded82804e6a790b.png

這個時候我們就可以執行一下看看效果了。

1622672-98a3a6751a3eec1e.png

以上就是簡單使用UICollectionView,不過在工作中會有相對複雜的需求,不過這些看似高階的使用 也是在基礎之上進行了特殊的設定。我們先把上面的程式碼放上來,大家可以參照一下。

1622672-72256a5c1d3d0c92.png
資料來源的程式碼就在上面了 不在重複放置了

如果我們需要自己設定每一個cell的展示樣式和大小設定 可以通過修改佈局引數UICollectionViewFllowLayout的物件引數來設定。

1622672-2e04d0baeac3865e.png
我們通過設定 約束引數來實現這個效果

1.要自己寫一個佈局引數類 繼承自流水佈局 UICollectionViewFllowLayout

2.當cell的位置相對螢幕中心改變時 重新約束cell

3.相關程式碼如下:

1622672-236b70e77602ccf4.png
當cell 滾動偏移螢幕時計算它的約束

4.除了上述的計算之外  必須在自定義的約束類中設定一個屬性

1622672-00658670b5ddf7fc.png
更新cell的約束

 以上就是炫酷效果的實現了,如果你覺得那裡有錯誤的地方,歡迎指教。郵箱zihanvip520@163.com。

相關文章