swift 中的明暗模式
Light and dark mode in swift
我为称为 myImage 的暗模式和亮模式创建了图像资源。将图像资产外观设置为任意、深色。
即使模式是亮或暗,此代码得到相同图像的问题。
如何根据浅色或深色模式获取 select 正确图像的代码?
感谢您的帮助。
let image = UIImage(named: "image")
let asset = image?.imageAsset
let resolvedImage = asset?.image(with: traitCollection)
If let image = resolvedImage {
myButton.setImage(image, for: .normal)
}
找出当前使用的 dark/light 模式:
if traitCollection.userInterfaceStyle == .light {
print("Light mode")
} else {
print("Dark mode")
}
然后我将访问具有不同名称的 light/dark 图像:UIImage:(named: "myImageLightMode") 和 UIImage:(named: "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 上使用扩展名完成相同的操作:
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)
let image = UIImage(named: "image")
通常是所需要的,如果您正确设置您的资产。确保将 "Appearances" 设置为 "Any, Dark",然后将图像添加到适当的位置:
我为称为 myImage 的暗模式和亮模式创建了图像资源。将图像资产外观设置为任意、深色。
即使模式是亮或暗,此代码得到相同图像的问题。
如何根据浅色或深色模式获取 select 正确图像的代码?
感谢您的帮助。
let image = UIImage(named: "image")
let asset = image?.imageAsset
let resolvedImage = asset?.image(with: traitCollection)
If let image = resolvedImage {
myButton.setImage(image, for: .normal)
}
找出当前使用的 dark/light 模式:
if traitCollection.userInterfaceStyle == .light {
print("Light mode")
} else {
print("Dark mode")
}
然后我将访问具有不同名称的 light/dark 图像:UIImage:(named: "myImageLightMode") 和 UIImage:(named: "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 上使用扩展名完成相同的操作:
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)
let image = UIImage(named: "image")
通常是所需要的,如果您正确设置您的资产。确保将 "Appearances" 设置为 "Any, Dark",然后将图像添加到适当的位置: