iOS TableView層級結構剖析

首先上圖微信

下面來分析一下tableView的層級結構佈局

tableView的組成:code

1.整個tableView有且僅有一個頭部和尾部就是tableViewHeadView和tableViewFooterView
2.tableView 能夠有多個section,一個section有且僅有一個sectionHead 和sectionFooter 可是能夠有多cell

在不少狀況下有不少人會忘記tableView的section和head,好比在寫一些多級列表的時候,其中有一種解決方法就是處理數據源,來根據模型判斷應該展現的cell的樣式,可是這種要處理數據源,並且結構相對來講也不夠清晰,感受不夠好,下面來舉例說明一下blog

以微信朋友圈爲例(微信不必定是按照這種思路實現,沒有逆向去了解過。)可是能夠用這種思路去解決這種佈局的問題

  1. 首先上面的背景和頭像那個能夠放在tableViewHeadView
  2. 接下來就是我的發的動態消息這個能夠放在tableViewSectionHead裏面
  3. 就是下面的評論了,能夠用tableViewCell來寫。

用以上這種方法佈局以後感受思路就比較清晰了io

上面還提到了一種思路這邊簡單介紹一下,就是根據數據模型來判斷,大概就是上面的動態消息那塊用一個數據模型,再下面的評論用一個數據模型,前期數據請求下來以後將數據整理好以後存放到數據中,再展現的時候更具數據模型來判斷用哪一個cell加載,可是這種方式僅供參考,不提倡使用這種方式,有點相似於曲線救國的方式,可是若是列表的層級再深一層的話能夠考慮用這種方式或者嵌套的方式table

特別說明一下請求

collectionView沒有tableView相似tableViewHeadView和tableViewFooterView的總體頭部和尾部,在作其餘的樣式UI的時候須要注意一些方法

可是用其餘的方法仍是能夠實現相似collectionViewHeadView 和FooterView就是設置collectionView的UIEdgeInsetsMake值,這樣能夠實現,可是這樣的話有個問題,就是加入刷新組件的時候會發現刷新組件偏移了。im

相關文章
相關標籤/搜索