1. 程式人生 > >iOS之解決UITableView與背景顏色不一致問題

iOS之解決UITableView與背景顏色不一致問題

近日專案開發中,發現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];
}

效果如圖: