override func viewDidLoad() {
super.viewDidLoad()
label.textColor = UIColor(named: "myColor",
in: Bundle(identifier: "framework_identifier") ?? .main, // << here !!
compatibleWith: .current)
}
@IBOutlet weak var label: UILabel!
已测试过 Xcode 13.4 / iOS 15.5
public extension Color {
public enum Primary {
static let green = Color("PrimaryGreen", bundle: .module)
}
}
public extension UIColor {
public enum Primary {
static let green = UIColor(Color.Primary.green)
}
}
SwiftUI 的 Color
直接从资源目录加载,但 UIKit 的 UIColor
是从已加载的 Color
实例化。这会引起所描述的问题,因为当转换到暗模式时,UIColor
不会自动更新。当然,解决方案是直接从资源目录加载 UIColor
。