1.使用UIcollectionview
2.使用自定義的FlowLayout
3.需要在layoutAttributesForElemetsInRect中設(shè)置自定義的布局(item的frame)
4.在preparelayout中計(jì)算布局
5.遍歷數(shù)據(jù)內(nèi)容,根據(jù)索引取出相應(yīng)的attributes(使用layoutAttributesForCellWithIndexPath),根據(jù)九宮格算法設(shè)置布局。
細(xì)節(jié)1:實(shí)時(shí)布局珊拼,重寫shouldinvalidatelayoutforboundschange(bounds改變重新布局,scrollview的contentoffset>bounds)
細(xì)節(jié)2:計(jì)算設(shè)置item size (保證內(nèi)容顯示完整流炕,UIcollectionview的contentsize是根據(jù)itemsize計(jì)算的)澎现,根據(jù)列最大高度/對(duì)應(yīng)列數(shù)量求出最大高度累加得到
細(xì)節(jié)3:追加item到最短列,避免比不參差不齊每辟。