TableView底部出現一塊空白

TableView的contentSize是會走tableview 的代理方法動態計算,不需要我們手動去設置。當我們要為TableView添加header時請記得先設置兩個代理后,再添加header ,否則你會發現TableView底部會多出一塊空白。
上錯誤代碼,這樣會底部會多出一塊空白

_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0,   self.view.width, self.view.height) style:UITableViewStyleGrouped]; _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
 _tableView.tableHeaderView = self.headerView;
 _tableView.tableHeaderView.height = self.headerView.height;
  _tableView.showsVerticalScrollIndicator = NO;
  _tableView.showsHorizontalScrollIndicator = NO;
  _tableView.dataSource = self;
  _tableView.delegate = self;

正確代碼

_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0,   self.view.width, self.view.height) style:UITableViewStyleGrouped]; _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  _tableView.dataSource = self;
  _tableView.delegate = self;
//添加tableHeaderView在_tableView.dataSource = self后
 _tableView.tableHeaderView = self.headerView;
 _tableView.tableHeaderView.height = self.headerView.height;
  _tableView.showsVerticalScrollIndicator = NO;
  _tableView.showsHorizontalScrollIndicator = NO;

原因是當你先設置TableView添加header時,我們會發現TableView會把contentSize設置得比本來的高度高一點,比如真實內容是H1的高度,但現在是H2 >H1.再設置代理的話,通過走TableView的代理方法設置的contentSize會在H2的基礎上進行計算的,這樣到最后刷新完,contentSize就會比真實的內容大一點了。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,869評論 18 139
  • 1.ios高性能編程 (1).內層 最小的內層平均值和峰值(2).耗電量 高效的算法和數據結構(3).初始化時...
    歐辰_OSR閱讀 29,547評論 8 265
  • 解決添加到ScrollView上的UITableView控件自動向下偏移64像素的問題 首先理解1:即使UITab...
    CoderZb閱讀 5,275評論 1 8
  • 一、簡介 <<UITableView(或簡單地說,表視圖)的一個實例是用于顯示和編輯分層列出的信息的一種手段 <<...
    無邪8閱讀 10,674評論 3 3
  • 我怕自己會忘掉,所以提前記錄下產品媽媽的好。 產品成功算你,失敗算我的 產品成功算你的,失敗算我的。這是產品媽媽今...
    熊孩子CEO閱讀 450評論 0 0