UICollectionView 簡單使用
來自: http://www.cnblogs.com/softwaretailor/p/5192328.html
顯示數據列表 大家通常使用的是UITableView
不用說TableView 是大家的首選。在iOS6之前這也是必選。但是伴隨著APP的成長一起都在變化目前更多的呈現一種塊狀的顯示效果、之前的行式顯示效果大家都已見的太多了。接下來大家和我一起來看看另外的一種控件 - UICollectionView
1、實例化
2、自動布局
3、橫向
4、縱向
5、協議
6、Cell
一、實例化
UICollectionView 的實例化和其它控件存在一個不同的地方。
init
initWithFrame:
initWithFrame: collectionViewLayout:
前面的兩個實例化方法是從父類繼承來的,在實際使用中不使用如果使用程序會報錯。
通常使用第三個方法這是因為在實例化UICollectionView 是需要指定一個布局,UICollectionView 呈現時是根據這個布局對象來顯示。
二、自動布局
AutoLayout 這個很簡單將 UICollectionView 實例的 translatesAutoresizingMaskIntoConstraints 屬性設置為NO 然后添加相應的約束。
三、布局(UICollectionViewFlowLayout) 這里將橫向和縱向布局放在一起
UICollectionView 顯示布局非常靈活凡是UITableView 能夠顯示的它都能顯示。
由于CollectionView 是塊狀布局決定了它能夠實現橫縱布局, 這兩種布局蘋果官方已經封裝好。同時還有更多的布局方式可以通過繼承 UICollectionViewFlowLayout 自定義。
橫向布局和縱向布局主要是通過布局實例對象的屬性scrollDirection 來控制, UICollectionViewScrollDirectionVertical/UICollectionViewScrollDirectionHorizontal 分別代表縱向布局和橫向布局默認是縱向布局。
</div>
當然在橫向布局的時候需要注意的是UICollectionView 的高度。如果高度設置不合理就不能顯示出橫向滾動的效果。
布局實例可以在實例化的時候就設置好相應的顯示效果也可以通過 UICollectionViewDelegateFlowLayout 協議靈活實現。
四、協議(UICollectionViewDataSource,UICollectionViewDelegate)
主要是數據源和動作協議
數據源協議主要控制數據的顯示
動作協議主要是捕捉用戶的相關操作和動畫。
這里需要注意一個小問題:數據能夠正常顯示但UICollectionView 沒有滑動效果。這時將 UICollectionView 實例的 alwaysBounceHorizontal 屬性值設置成YES 如果是縱向滾動就是 alwaysBounceVertical。
五、Cell
使用UICollectionView 顯示數據必須使用registerClass或者registerNib 注冊對應的Cell 目的是便于重用同時避免了每次顯示都要重新實例化,在UICollectionView 中默認必須注冊Cell。
對于UITableView則可以不必注冊,建議大家在使用UITableView 時最好是先注冊Cell,這樣做的好處大家應該能知道吧?
總結:
UICollectionView 在顯示數據上表現的靈活性和美觀 都要優于UITableView 但是在有些方面還是相對于UITableView 來說還是有所不足例如:編輯、分組索引 、多選.