天天看點

IOS開發之瀑布流的實作(UICollectionView與UIScrollView)

瀑布流可以在保證圖檔原始比例的情況下,靈活的展現内容,相對于傳統的使用相同大小的網格展現大量圖檔,要好上很多,而實作瀑布流的方式有很多種,網上比較流行的有三種實作方式。 
  1,使用UIScrollView,主要技術點在于視圖的重用。
  2,使用UITableView,這種方式應該是最易想到的,因為需要展現幾列就用幾個tabelview就ok了,而且不需要考慮重用,應為蘋果已經做好了,隻需要考慮如何在幾列tabelView滑動的時候,保持同步不出現BUG。  
  3,使用UICollectionView,UICollectionView在iOS6中第一次被介紹,它與UITableView有許多相似點,但它多了一個布局類,而實作瀑布流,就與這個布局類有關。此種方式實作,也不需要考慮視圖重用。
  以上三種方式實作瀑布流,使用UICollectionView應該算是最簡單的了。
           

集合視圖:UICollectionView

UICollectionView和UITableView類似,它也是datasource和delegate設計模式的:datasource為view提供資料源,告訴view要顯?示些什麼東?以及如何顯示它們,delegate提供一些樣式的?細節以及?戶互動的響應。

在collectionView中,對于cell的布局比較複雜,專?使?了?個類來對collectionView的布局和行為進?描述,這就是 UICollectionViewLayout。UICollectionViewLayout是抽象基類,使用時用其子類建立對象。最常用的UICollectionViewLayout子類就是UICollectionViewFlowLayout(Apple提供)了。Flow Layout簡單說是一個直線對齊的layout,一般的如優酷用戶端等瀑布流樣式使用它就能搞定。當然UICollectionViewLayout也有其他有趣的子類,如堆疊布局、圓形布局、Cover Flow布局等。