UItableView:改變tableHeaderView大小
前言
最近遇到一個狀況,在原有的tableView上面,必須要增加新的欄位.
這時候有兩個方式:
- 加入一個Section
- 使用tableView本身的tableHeaderView去實作
這兩個方法各有優缺,如果增加的不是一行一行的tableView類型,那就得用tableHeaderView去實作。
畢竟tableHeaderView就是獨立的View,我們可以自訂裡面所顯示的內容。
相對的如果是一行一行的tabeleView類型,就可以利用增加Section的方式,
在Section 0這個位置插入一個Section,原本的Section 0往下移變成Section 1。
實作
But 人生就是這個 But...
新增的欄位,可能跟原本tableView的欄位資料完全不相干,
這個新增的Section反而成了大麻煩,
要特別為了他改寫TableViewDataSource,TablieViewDeleGate相關function.
甚至cell也要重寫。
因此…
我決定另外設計一個tableView,用來顯示在原本tableView的tableHeaderView.(好繞口)
也就是tableView A的tableHeaderView是tableView B,如此便可以達到完全獨立不會互相影響.
當tableHeaderView改變大小的時候,原有的tableView還會正常顯示嗎?
是的,不會!!!! 當tableHeaderView長大的時候,原本tableView的第一列可能會被蓋住!
解決方法:當改變tableHeaderView的大小之後,重新指定給原本的tableView.
參考如下範例:
1 2 |
|
如有興趣可以下載整個Demo專案: tableHeaderViewDemo