作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在一个巨大的项目中实现深色模式,我不想为每个标签和 View 创建 outlet 以更改颜色,因为你知道这很困难。
我使用@IBInspectable 为 UIView 子类创建了两个颜色选择器作为示例。
-dayModeBGColor-nightModeBGColor
但是应用程序崩溃了。
我的代码如下所示。(请不要建议任何其他方式)
import UIKit
class ThemeView: UIView {
@IBInspectable var DarkColor: UIColor = UIColor.black {
didSet{
self.layer.backgroundColor = (self.DarkColor as! CGColor)
}
}
@IBInspectable var DayColor: UIColor = UIColor.white {
didSet{
self.layer.backgroundColor = (self.DayColor as! CGColor)
}
}
var selectedBGColor : UIColor = UIColor.white
override func awakeFromNib() {
if Theme.shared.isDarkMode == true {
self.layer.backgroundColor = (DarkColor as! CGColor)
}
else{
self.layer.backgroundColor = (DayColor as! CGColor)
}
}
}
最佳答案
由于将 UIColor
强制转换为 CGColor
,应用程序可能会崩溃。
正确的做法应该是self.layer.backgroundColor = self.DarkColor.cgColor
关于swift - 如何使用 IBInspectable 在属性检查器中设置夜间模式和白天模式颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57372689/
我的应用程序使用 Theme.AppCompat.DayNight.NoActionBar AppTheme ,并有一个抽屉导航。我所有的可绘制对象都是 XML 向量,其中的路径是黑色的。对于在我的
我正在使用 Angularjs 开发一个应用程序。我对动画的一个问题感到震惊。 我想将此处以两种模式(夜间和白天模式)显示的方式添加到我的应用程序中。我看到每次更改模式时都可以使用主题提供程序来更改主
我的客户希望在他的应用程序的“设置” View 中有一个 UISwitch 控件,即:“夜间禁用通知”。如果此选项已打开并且现在是晚上,他希望推送他的 API 将发送到移动设备的消息被忽略。这可能吗?
我是一名优秀的程序员,十分优秀!