【问题标题】:Avoid UIImage fill color from bleeding into UIImageView避免 UIImage 填充颜色渗入 UIImageView
【发布时间】:2021-11-10 03:36:09
【问题描述】:

我想将一个包含透明部分的 UIImage 填充到 UIImageView 中(即填充到存在的 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

【问题讨论】:

    标签: uiimageview uicolor ios15 sf-symbols xcode13


    【解决方案1】:

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

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

    4 rendering modes分别为单色、分层、调色板和多色。

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

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

    编辑:

    针对您的具体情况,并且由于您要使用的所有符号都有一个圆角矩形,您可以在 UIImage 后面添加一个白色圆角矩形图像(比原始符号略小)。

    【讨论】:

    • 我想要的图标在 SF 应用程序中定义为单色
    • @DanielSpringer 能否列出你想要的图标,图片会很棒,我可能有办法帮助你
    • 添加了 SF 符号名称
    • @DanielSpringer 谢谢,我已经编辑了对您具体案例的回答
    • 我正在寻找更标准的解决方案,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多