SwiftUI模版渲染修饰符renderingMode
SwiftUI模版渲染修饰符renderingMode

SwiftUI模版渲染修饰符renderingMode

renderingMode 是一个修饰符,用于告诉 SwiftUI 这张图片是显示原始颜色,还是当作模板(template) 来重新着色。

func renderingMode(_ renderingMode: Image.TemplateRenderingMode?) -> Image

SwiftUI 中的 Image.TemplateRenderingMode 枚举主要有两个值:

1、.original:使用图片自身的原始颜色(默认);

2、.template:将图片视为模板,仅保留形状,颜色由 foregroundColor 决定。

使用方式

1、原始渲染(.original)

Image("logo")
    .renderingMode(.original)

显示图片原本的颜色,不受 .foregroundColor() 影响。

2、模版渲染(.template)

Image("logo")
    .renderingMode(.template)
    .foregroundColor(.white)

忽略原图颜色,只保留“形状”。使用 .foregroundColor() 来指定显示颜色(这里是白色)。

系统图标(SF Symbols)中,默认是 .template 模式。

Image(systemName: "heart.fill")
    .foregroundColor(.red)

可以显示红色的爱心图标,如果使用 .renderingMode(.original),它则会恢复系统默认的配色样式(比如多层彩色图标)。

总结

renderingMode 控制图片是显示原色(.original)还是作为模板(.template)。

模板模式下,图片的颜色会被 foregroundColor 接管。

在Xcode的Asset Catalog中,还可以设置图片资源的默认渲染模式:

Asset文件夹 → 图片 → Show the Attributes inspector → Render As → emplate Image。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注