UITableView 深色主题
Posted
技术标签:
【中文标题】UITableView 深色主题【英文标题】:UITableView dark theme 【发布时间】:2017-04-04 09:18:47 【问题描述】:我正在尝试让我的应用程序使用深色主题,到目前为止,我已将故事板中的导航控制器和标签栏控制器的样式更改为 Dark 以获得系统深色主题,但是当我试图让我的表格视图变暗时,我找不到等效的选项。
我是否遗漏了什么,并且有一个选项,在故事板或代码中,让所有 UITableView
s 使用系统黑暗主题?如果没有,使用默认/标准颜色实现此目的的最佳方法是什么?
我正在尝试实现类似于配对 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 深色主题的主要内容,如果未能解决你的问题,请参考以下文章