【问题标题】:SF Symbol looks distortedSF 符号看起来扭曲
【发布时间】:2020-02-08 19:32:30
【问题描述】:

在 UIButton 上使用新的 SF 符号时,符号在我的 iPhone 8 上似乎失真,而在 iPhone 11 模拟器上一切正常。 在 iPhone 8 上,符号似乎水平挤压,使其太高。我做了一个gif来说明这个问题。 gif 显示了两个转换的屏幕截图。一个来自 8 和一个来自 11:

Illustration of the problem

还有其他人有这个问题吗?这是怎么回事?

编辑:

IB 属性。 Button 被限制为包含视图的所有边缘。

编辑#2:为符号指定字体并缩放“大”时,符号的大小正确。我试过 SystemFont “标题”。

【问题讨论】:

  • 能否添加您在 UIButton 上设置的 Interface Builder 属性的屏幕截图?

标签: ios xcode storyboard sf-symbols


【解决方案1】:

我没有尝试所有符号,但看起来至少所有基于圆形的符号都有这个问题。

编辑:请参阅fahlout's answer,了解使用图像视图的 contentMode 的解决方法。

正如您所指出的,在字体大小为 17pt 的常规/中等大小下,某些符号未按预期呈现,并且某些形状被扭曲。

一些观察:

  • 这似乎只是 UIButton 如何呈现图像的情况,UIImageView 不受影响。
  • 当增加字体大小/使用更大或更粗的符号变体时,问题将不太明显或完全消失。如果我不得不猜测,我会说这是因为拙劣的渲染是由一些浮点数舍入误差引起的,并且当比例较大时该误差影响较小。

以下是circle 符号(绿色)在不同比例和大小下的视觉对比,以及 Photoshop 中覆盖的参考圆圈(红色):

  • 左:字体 = 标题;比例=未指定;重量 = 未指定
  • 中心:字体 = 正文;比例=未指定;重量 = 未指定
  • 右:字体 = 标题;规模 = 大重量 = 未指定

我们可以在这里看到,在所有情况下,圆形符号都不是一个完美的圆形,并且它在水平方向上缺少一个或两个像素(取决于字体大小)是完美的圆形。

我做了一个项目来显示这个问题:https://github.com/guillaumealgis/UIButton-SFSymbol-Squished

很遗憾,我没有很好的解决方案或解决方法来解决这个问题,因为它似乎是一个内部 UIKit 错误。

编辑:请参阅fahlout's answer,了解使用图像视图的 contentMode 的解决方法。

您还应该向 Apple 提交反馈,以增加修复此错误的机会! (我的是 FB7461981 苹果人?)

【讨论】:

  • 这个问题还没有解决,我无法理解
【解决方案2】:

在代码中为按钮的图像视图设置内容模式似乎可以解决问题。

button.imageView?.contentMode = .scaleAspectFit

下面屏幕截图中的信息圈是一个使用 'info.circle.fill' SF Symbol 的 UIButton。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-30
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多