一、什么是renderingMode
Image的renderingMode可以设置两种值,.original表示渲染图片原来的像素,.template则表示用前景色去渲染图片像素非透明部分,图片只用作形状或者模版。
二、什么是symbolRenderingMode
Image的symbolRenderingMode可以设置四种值。我们知道SF symbol可能是有多个图层的,而.monochrome会将多个图层合并成一个,然后使用foregroundStyle渲染。对于.multicolor,SF symbol会保持多个图层,并使用它固有的样式或foregroundStyle进行渲染。观察下面的例子,.multicolor会将gauge显示为白色,而左下角的plus则是绿色,如果我们给它设置foregroundStyle为yellow,那么gauge会变为黄色,而plus仍保持绿色,绿色是它固有的样式。
.hierarchical则比较好理解,首先它是渲染多个图层的,其次它逐层会使用foregroundStyle的.primary,.secondary,.tertiary等不同等级的样式来进行渲染。
而.palette也是多图层渲染,但是可以指定primary、secondary、tertiary颜色来渲染前景元素。当SF symbol Image不指定symbolRenderingMode,对foregroundStyle指定primary、secondary或者primary、secondary、tertiary时,symbolRenderingMode会自动设为.palette。
现在的困惑是你不知道哪个图层使用primary,哪个使用secondary,一种办法是可以使用SF Symbol app,通过对Symbol设置primary、secondary、tertiary颜色来观察各部分图层样式情况。另一种方法是可以从Symbol名字中猜测,一般名字最前面部分是应用primary颜色,后面依次类推。
标签:renderingMode,渲染,primary,VS,SwiftUI,foregroundStyle,图层,symbolRenderingMode,secon From: https://blog.csdn.net/Mamong/article/details/142586583