SwiftUI简明概念(2):renderingMode VS symbolRenderingMode

一、什么是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颜色,后面依次类推。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值