2017-02-16 170 views
1

我應用了一個全局主題,用於更改UITableViewHeaderFooterView的背景顏色。以下是代碼:iOS:覆蓋UIA外觀appearanceWhenContainedInInstancesOfClasses

[[UIView appearanceWhenContainedInInstancesOfClasses:@[[UITableViewHeaderFooterView class]]] setBackgroundColor:[UIColor lightGray]]; 

在一個屏幕上有一個實例,我希望覆蓋此顏色並將顏色更改爲白色。我試過以下代碼:

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 

    let headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: "HeaderView") as? HeaderView 

    headerView.contentView.backgroundColor = UIColor.white 
    headerView.backgroundColor = UIColor.white 

    return headerView 
} 

但是,headerView仍然顯示爲淺灰色背景。有關如何覆蓋它的任何想法?

+0

你有沒有試過出隊的HeaderFooterView和剛剛創建一個新的外觀上? – ystack

回答

3

您可以製作UITableViewHeaderFooterView的子類 - 說WhiteUITableViewHeaderFooterView並將其配置爲正確的標題。

然後,您可以設置意見該類[[UIView appearanceWhenContainedInInstancesOfClasses:@[[WhiteUITableViewHeaderFooterView class]]] setBackgroundColor:[UIColor white]];

0

如何改變HeaderView類中的背景顏色,如LayoutSubviews()這樣的方法?你可以讓這個類的property表示這是改變背景顏色的正確視圖。不知道這是否是實現這一目標的最佳方法,但應該是一種解決方法。