首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS:重写UIAppearance appearanceWhenContainedInInstancesOfClasses

iOS:重写UIAppearance appearanceWhenContainedInInstancesOfClasses
EN

Stack Overflow用户
提问于 2017-02-16 20:25:48
回答 1查看 1.2K关注 0票数 2

我应用了一个全局主题,它可以更改UITableViewHeaderFooterView的背景色。以下是代码:

代码语言:javascript
复制
[[UIView appearanceWhenContainedInInstancesOfClasses:@[[UITableViewHeaderFooterView class]]] setBackgroundColor:[UIColor lightGray]];

在一个屏幕上有一个实例,我希望覆盖这个颜色并将颜色更改为白色。我尝试了以下代码:

代码语言:javascript
复制
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仍然以浅灰色背景出现。有什么办法可以推翻它吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-16 20:43:02

您可以创建一个UITableViewHeaderFooterView的子类,比如WhiteUITableViewHeaderFooterView,并将其配置为正确的标头。

然后,您可以在该类[[UIView appearanceWhenContainedInInstancesOfClasses:@[[WhiteUITableViewHeaderFooterView class]]] setBackgroundColor:[UIColor white]];中设置视图的外观。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42283916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档