UITableView:改變 TableHeaderView 的高度

UITableView:改變 TableHeaderView 的高度
參考:http://stackoverflow.com/a/526825

有這么一種需求,在列表頂端顯示一些別樣的數(shù)據(jù),而這個別樣的數(shù)據(jù)則需要通過一個別樣的 View 來展現(xiàn),它便是 UITableView 的 tableHeaderView。

倘若 tableHeaderView 里的內(nèi)容很固定,高度不要隨著內(nèi)容的不同而改變,這樣還好。

如果,高度是需要動態(tài)改變的,某些人(比如我)可能就會遇到這樣一個難題:

已經(jīng)給 view 中的每個子 view 設置過值了,高度算過了,frame 也重新設置過了,可 tableHeaderView 的高度卻還是之前的高度,沒有變化。內(nèi)容變多,則會有一部分看不見了;內(nèi)容變少,則有一部分空白,放在那里實在不好看。

怎么辦??

view 作為 tableView 的 tableHeaderView,單純的改變 view 的 frame 是無濟于事的,tableView 不會大度到時刻適應它的高度(以后 Apple 會不會改變就不知道了),所以,如何告訴tableView 它的 tableHeaderView 已經(jīng)改變了?很簡單,就一句話(關鍵最后一句):

[webView sizeToFit];
CGRect newFrame = headerView.frame;
newFrame.size.height = newFrame.size.height + webView.frame.size.height;
headerView.frame = newFrame;
[self.tableView setTableHeaderView:headerView];

這樣以后,效果就出來了。不過這種過度顯得有些生硬,能不能加一點點動畫,讓它變得順眼一些呢?試試下面的代碼:

[self.tableView beginUpdates];
[self.tableView setTableHeaderView:headerView];
[self.tableView endUpdates];

原貼地址:這里只做收藏學習用

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容