1. 理想狀態下的 tableHeaderView(見下圖):

理想狀態下的tableView.png
2. 但是有時候會出現這種情況(見下圖):

tableHeaderView遮擋住cell01.png

tableHeaderView遮擋住cell02.png
3. 出現問題的代碼
#pragma mark - 設置tableHeaderView - (void)setupTableHeaderView { UIView *view = [[UIView alloc] init]; view.backgroundColor = [UIColor greenColor]; // 設置 tableHeaderView self.tableView.tableHeaderView = view; // 設置 view 的 frame view.frame = CGRectMake(0, 0, kScreenWidth, 90 * kScaleHeight); }

出現遮擋的代碼.png
4. 破解之道
#pragma mark - 設置tableHeaderView - (void)setupTableHeaderView { UIView *view = [[UIView alloc] init]; view.backgroundColor = [UIColor greenColor]; // 設置 view 的 frame(將設置 frame 提到設置 tableHeaderView 之前) view.frame = CGRectMake(0, 0, kScreenWidth, 90 * kScaleHeight); // 設置 tableHeaderView self.tableView.tableHeaderView = view; // // 設置 view 的 frame // view.frame = CGRectMake(0, 0, kScreenWidth, 90 * kScaleHeight); }

解決之道.png