1. 程式人生 > >iOS TableView層級結構剖析

iOS TableView層級結構剖析

首先上圖

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

tableView的組成:

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

在很多情況下有很多人會忘記tableView的section和head,比如在寫一些多級列表的時候,其中有一種解決方法就是處理資料來源,來根據模型判斷應該展示的cell的樣式,但是這種要處理資料來源,而且結構相對來說也不夠清晰,感覺不夠好,下面來舉例說明一下

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

  1. 首先上面的背景和頭像那個可以放在tableViewHeadView
  2. 接下來就是個人發的動態訊息這個可以放在tableViewSectionHead裡面
  3. 就是下面的評論了,可以用tableViewCell來寫。

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

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

特別說明一下

collectionView沒有tableView類似tableViewHeadView和tableViewFooterView的整體頭部和尾部,在做其他的樣式UI的時候需要注意一些

但是用其他的方法還是可以實現類似collectionViewHeadView 和FooterView就是設定collectionView的UIEdgeInsetsMake值,這樣可以實現,但是這樣的話有個問題,就是加入重新整理元件的時候會發現重新整