iOS TableView Header、Footer高度異常問題

由于歷史原因,項目中只有一個Controller,有相機等其他耗性能的功能,其他的頁面都是以View的形式Add上去,出現了幾個關于tableView的UI問題,記錄下可能的情況以及解決方案。

注:以下出現的都是公司項目里出現過的,解決方案可能只適用上述的項目結構中,請讀者自行分辨。

一、tableViewHeader/tableFooterView設置后出現高度莫名減少64/49

處理方式:
1)先檢查約束是否正確,出現這種特殊偏差往往是約束不對。如果是frame和autolayout混用則檢查起父控件的autolayout。
2)不要使用tableView.tableFooterView = footerView;的方式換用[tableView setTableFooterView:footerView]調用。理論上這兩個是同樣的,實際使用時偶現效果不同的情況。
3)在- (void)drawRect:(CGRect)rect中重新設置Frame
4)在- (void)layoutSubviews中重新設置Frame
5)使用以下方式直接設置frame

    CGRect frame = self.tableView.tableFooterView.frame;
    frame.size.height = 120;
    self.tableView.tableFooterView.frame = frame;

6)使用以下方式間接設置frame

    UIView *footerV = [UIView new];
    footerV.frame  = CGRectMake(0, 0, 120, 120);
    self.tableView.tableFooterView = footerV;

7)組合使用上述幾種方案
如在3)中和5)一起使用,3)中和6)一起使用

分析原因:可能都是layout引起的問題,由于項目結構的原因出現了這些高度異常。在普通項目中并沒有出現。

二、其他UI顯示異常

1.Plain模式下出現快速上下滑動出現sectionHeader突然卡在屏幕中間

折中處理:改為Groupe模式。
原因分析:可能是項目中出現耗性能的東西導致在計算section位置出現異常導致,代碼上沒有想到更好的方案,目前折中處理。

2.Group模式下出現header和footer出現了多余的部分

處理方法:在heightForHeader和heightForFooterInSection方法中返回0.01,不要返回0可解決。
原因分析:Group模式下section默認是有高度的,設置為0則會觸發(fā)顯示默認高度。

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

相關閱讀更多精彩內容

  • 發(fā)現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,703評論 4 61
  • 版權聲明:未經本人允許,禁止轉載. 1. TableView初始化 1.UITableView有兩種風格:UITa...
    蕭雪痕閱讀 2,993評論 2 10
  • 程序猿最煩兩件事,第一件事是別人要他給自己的代碼寫文檔,第二件呢?是別人的程序沒有留下文檔。 1.『淺入淺出』My...
    極樂叔閱讀 162評論 0 0
  • 領導,您好!今天聽到了一個關于您的好消息——結束異地工作,恭喜您! 聽到這個消息,又高興又失落的情緒圍繞了...
    善良蜜罐兒閱讀 250評論 1 1
  • 這個假期長達8天,是我有史以來最愉快的一個假期,雖然十五那天我感冒了。 雖然我感冒了,但不能影響我的革命熱情,因為...
    mimi播報閱讀 387評論 2 4

友情鏈接更多精彩內容