抱歉,如果这个问题被问到了,但是在stackOverFlow上找不到正确的答案,所以我问了..
我试图在我的应用程序中实现暗模式,但不幸的是,它在使用表视图时不能很好地工作,它确实改变了我的背景和东西,但我不能在我的表视图中改变我的组的颜色。
这里有一张图片来说明这个问题:https://imgur.com/a/h4A3zOZ (因为太大了,不能上传到这里)。
下面是我的代码:
// MARK: - Premium Section - DarkMode + Graph:
@IBAction func darkModeSwitch(_ sender: UISwitch) {
let current = sender.isOn ? Theme.dark : Theme.light
if #available(iOS 13.0, *) {
// overrideUserInterfaceStyle = UIUserInterfaceStyle(rawValue: current.stateMode)!
//STEP1: Saving User Defaults Switcher:
saveSwitchToggleDarkMode(switcherState: sender.isOn)
//STEP2: Setting UI Colors Of Settings View:
self.tableView.backgroundColor = current.backgroundColor
///Setting up the barTint Color:
self.navigationController?.navigationBar.barTintColor = current.barTintColor
///Setting up the title text color:
self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor:current.textColor]
///Changing back color in navigation controller:
self.navigationController?.navigationBar.backItem?.backBarButtonItem?.tintColor = current.backItemColor
}
}发布于 2020-07-14 13:49:14
另一种(也许更简单)实现暗模式的方法是使用iOS暗模式功能,你可以在settings.If中触发该功能,你想实现这个功能,你可以通过转到你的Assets.xcassets并按下底部->新颜色集上的加号标记来创建自定义颜色集。在属性检查器上,在名称下命名你的颜色,在外观下选择‘任何,亮,暗’,现在你将有一个位置来放置3种不同的颜色。在“光”下,放入亮模式颜色,在“暗”模式下,放入“暗”模式颜色。

然后,在您希望实现此颜色的地方,您可以在故事板中将颜色更改为您的自定义颜色,如下所示:

或者您可以在代码中更改它,如下所示
myButton.backgroundColor = UIColor(named: "TestColor")
当用户通过控制中心或设置触发黑暗模式时,应用程序也会相应地自动更改。您可以通过转到设置-> Developer ->深色外观或转到功能命令切换外观或简单地按Shift + -> +A来进行测试
然而,这种方法意味着你将不会有一个独立的暗模式,因为它只会在设备本身启用暗模式时被触发。
发布于 2020-07-14 17:26:12
您应该更改窗口级别上的模式以将更改应用于所有控件,例如:
if #available(iOS 13, *) {
UIApplication.shared.delegate?.window??.overrideUserInterfaceStyle = .dark
}https://stackoverflow.com/questions/62888450
复制相似问题