UITableView 深色主题

Posted

技术标签:

【中文标题】UITableView 深色主题【英文标题】:UITableView dark theme 【发布时间】:2017-04-04 09:18:47 【问题描述】:

我正在尝试让我的应用程序使用深色主题,到目前为止,我已将故事板中的导航控制器和标签栏控制器的样式更改为 Dark 以获得系统深色主题,但是当我试图让我的表格视图变暗时,我找不到等效的选项。

我是否遗漏了什么,并且有一个选项,在故事板或代码中,让所有 UITableViews 使用系统黑暗主题?如果没有,使用默认/标准颜色实现此目的的最佳方法是什么?

我正在尝试实现类似于配对 Apple Watch 时可用的 Activity 应用程序:

【问题讨论】:

你能解释一下“黑暗主题”的含义吗? 【参考方案1】:

没有所谓的“黑暗主题”...除非您自己创建一个。

您可以通过多种方式自定义UITableView...

找到它们的最佳位置是the Apple Documentation for UITableView。

您可以更改backgroundColor 单元格颜色、分隔符颜色等...

【讨论】:

感谢您的快速响应,我通过 UIAppearance 实现了我的目标。【参考方案2】:

Apple 没有开箱即用的实现。

这是一种通用方法:

    为 UI 配置创建一个 Theme 类。它将包含几个属性,如 UIColors/UIImages/SystemSoundIDs/Strings 等,具体取决于您的需要。

    您也可以创建config json file 并为主题配置创建主题参数列表。 (如果您想快速更改或什至从服务器接收 json 配置并配置整个应用程序,这将使配置变得更容易)

    Theme 对象将获取 json 文件的某些参数或字段并配置字体/颜色/背景/大小等。

    您可以创建一个方法,例如class func applyThemeToViewController(vc: UIViewController, theme: Theme) 用于配置某个屏幕或通过UIAppearence 代理配置全局。

【讨论】:

感谢您的提示,但我不打算支持多个主题,通过应用程序委托中的 UIAppearence 全局配置就足够了 @MarcoBoschi 如果您确定不会扩展主题的功能 - 是的,但我建议创建一个单独的主题类来配置目标屏幕。这不会花费很多时间,但实现会更加灵活和可读;)

以上是关于UITableView 深色主题的主要内容,如果未能解决你的问题,请参考以下文章

视觉辅助 x 深色主题

如何在 Google Colab 中将主题更改为深色?

深色主题和浅色主题问题——android studio(夜间)

如何在 Storybook 6.0 中自定义深色和浅色主题

让所有网站都支持深色主题 - Dark Reader

让所有网站都支持深色主题 - Dark Reader