我没有尝试所有符号,但看起来至少所有基于圆形的符号都有这个问题。
编辑:有关使用图像视图的 contentMode 的解决方法,请参阅fahlout 的答案。
正如您所指出的,在字体大小为 17pt 的常规/中等大小下,某些符号未按预期呈现,并且某些形状被扭曲。
一些观察:
- 这似乎只是 UIButton 如何呈现图像的情况, UIImageView 不受影响。
- 当增加字体大小/使用更大或更粗的符号变体时,问题将不太明显或完全消失。如果我不得不猜测我会说这是因为拙劣的渲染是由一些浮点数舍入误差引起的,并且当比例较大时该误差影响较小。
circle
这是不同比例和大小的符号(绿色)的视觉比较,以及在 Photoshop 中覆盖的参考圆圈(红色):
- 左:字体 = 标题;比例=未指定;重量 = 未指定
- 中心:字体=正文;比例=未指定;重量 = 未指定
- 右:字体 = 标题;规模 = 大重量 = 未指定
我们可以在这里看到,在所有情况下,圆形符号都不是一个完美的圆形,并且它在水平方向上缺少一个或两个像素(取决于字体大小)是完美的圆形。
我做了一个项目来显示这个问题:https ://github.com/guillaumealgis/UIButton-SFSymbol-Squiished
不幸的是,我对这个问题没有很好的解决方案或解决方法,因为它似乎是一个内部 UIKit 错误。
编辑:有关使用图像视图的 contentMode 的解决方法,请参阅fahlout 的答案。
您还应该向 Apple 提交反馈,以增加修复此错误的机会!(我的是 FB7461981 苹果人)