tableHeaderView在iOS8,9上更新frame不生效問題

最近遇到一個坑:
都知道tableview可以設置header,當我給tableview設置完一個header之后,由于header的高度是由數據決定的,所以我在初始化header的時候并沒有給他高度,而是當獲取到數據之后重新設置tableHeaderView的frame,但是我后面更新header的frame并沒有生效,簡要代碼如下:

初始化header:

UIView *header = [[UIView alloc] init];
header.backgroundColor = [UIColor clearColor];
_tableView.tableHeaderView = header;

獲取到數據之后,更新header的frame:

UIView *tableHeader = self.tableView.tableHeaderView;
tableHeader.frame = CGRectMake(0, 0, self.view.bounds.size.width, CGRectGetMaxY(_hotFuncHeader.frame));
self.tableView.tableHeaderView = tableHeader;

以上代碼寫法在ios10及以上的機器上是沒有問題的,但是到了ios8,9(由于沒有機器驗證,猜測應該低于ios10的都有問題)上就有問題了,后面更新的frame并沒有生效。

我嘗試再后面更新frame的時候,又把該header重新設置給tableview一下,問題得到了解決,代碼如下:

UIView *tableHeader = self.tableView.tableHeaderView;
tableHeader.frame = CGRectMake(0, 0, self.view.bounds.size.width, CGRectGetMaxY(_hotFuncHeader.frame));
self.tableView.tableHeaderView = tableHeader;
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,681評論 1 32
  • 因為要結局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細...
    uniapp閱讀 4,877評論 0 12
  • 2017.02.22 可以練習,每當這個時候,腦袋就犯困,我這腦袋真是神奇呀,一說讓你做事情,你就犯困,你可不要太...
    Carden閱讀 1,494評論 0 1
  • iOS XIB使用Safe Area后在iOS9和10上面出現的問題和解決方案 1.多添加一個距離SuperVie...
    下雨之後閱讀 972評論 0 1
  • #pragma mark someValueAboutTableView 1.tableView的樣式:UITab...
    瀟巖閱讀 1,054評論 0 0

友情鏈接更多精彩內容