iOS之解決UITableView與背景顏色不一致問題
阿新 • • 發佈:2019-02-07
近日專案開發中,發現UITableViewController在設定了背景色後(顏色1)與TableView的顏色2非常不搭調,細節決定成敗啊!
翻查程式碼發現設定HeaderInSection及FooterInSection導致的。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 20; } - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { if (section == 1) { return 100; } return (section == self.dataArray.count - 1) ? 10 : 0; }
通常的做法會是重寫tableView: viewForHeaderInSection:,在方法裡面自定義的View並背景顏色。
後來查了一下文件,其實還有更簡單的方法:(iOS 6.0以上版本有效)
// 改變UITableView的headerView背景顏色為透明色 - (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section { view.tintColor = [UIColor clearColor]; } // 改變UITableView的footerView背景顏色為透明色 - (void)tableView:(UITableView *)tableView willDisplayFooterView:(UIView *)view forSection:(NSInteger)section { view.tintColor = [UIColor clearColor]; }
效果如圖: