我为暗光模式创建了名为myImage的图像资产。将图像资产的外观设置为“暗”。
即使模式为亮或暗,此代码也无法获得相同的图像。
如何获取代码以根据亮或暗模式选择正确的图像?
感谢您的帮助。
let image = UIImage(named: "image")
let asset = image?.imageAsset
let resolvedImage = asset?.image(with: traitCollection)
If let image = resolvedImage {
myButton.setImage(image, for: .normal)
}
答案 0 :(得分:1)
答案 1 :(得分:0)
使用以下命令找出当前使用的暗/亮模式:
if traitCollection.userInterfaceStyle == .light {
print("Light mode")
} else {
print("Dark mode")
}
然后,我将访问具有不同名称的明/暗图像:UIImage :(名为:“ myImageLightMode”)和UIImage :(名为:“ myImageDarkMode”)
请记住,当您不想以不同的颜色创建每个图标时,可以将按钮按钮图像等图像着色为所需的颜色,如下所示:
if let originalImage = UIImage(named: "yourButtonImage") {
let tintedImage = originalImage.withRenderingMode(.alwaysTemplate)
customButton.setImage(tintedImage, for: .normal)
customButton.tintColor = UIColor.red
} else {
print("Image not found.")
}
同样可以在扩展名为UIImageView的UIImageView上完成
extension UIImageView {
func setImageAndColor(image: UIImage, color: UIColor) {
let templateImage = image.withRenderingMode(.alwaysTemplate)
self.image = templateImage
self.tintColor = color
}
}
通过以下方式访问此文件:
let imageView = UIImageView()
imageView.setImageAndColor(image: UIImage(named: "yourImage"), color: .red)