0

我想将包含透明部分的 UIImage 填充到 UIImageView 中(IE 到存在的 UIImageView 空间中,因为图像具有“Scale Aspect Fit”设置)

怎么可能呢?

我尝试绘制蒙版/上下文,将 maskToBounds/clipsToBounds/isOpaque 设置为 true/false,但它会流血(或者整个东西变成一个纯色框)。

我想要什么(注意内部是白色的,但在图像周围它是透明的,因此是主色。此屏幕截图来自 iOS 15 设置应用程序): 带有白色填充的屏幕截图

我现在所拥有的(图像填充颜色在图像外流血。这是我的应用程序): 出血颜色高清

笔记:

  • 我正在为图像使用 SF 符号
  • 图像内部有一个透明部分,这是我想用 UIImageView 的主要背景颜色以外的颜色填充的部分(而我希望 UIImageView 背景是透明的)

使用的 SF 符号:

                     checkmark.square.fill
                     divide.square.fill"
                     arrow.up.and.down.square.fill
                     questionmark.square.fill
                     arrow.right.square.fill
                     arrow.left.square.fill
4

1 回答 1

0

SF 符号将内部的透明封闭形状识别为可以填充颜色的单独形状。

正在寻找的是渲染模式来填充复选标记形状(例如)。默认情况下 SF 符号使用单色渲染模式,您可以使用调色板渲染或多色渲染(这在 SF 符号 2.0 中部分支持,在 3.0 中完全支持)

4 种渲染模式分别为单色、分层、调色板和多色。

警告:某些 SF 符号受版权保护,不能使用,Apple 还警告不要让 SF 符号看起来像系统图标。

您可以使用 SF 符号应用程序检查版权、渲染模式和颜色符号,您可以从这里下载https://developer.apple.com/sf-symbols/

编辑:

对于您的特定情况,并且因为您要使用的所有符号都有一个圆角矩形,您可以在 UIImage 后面添加一个白色圆角矩形图像(略小于原始符号)。 例子

于 2021-09-17T08:22:16.413 回答