在UIButton上使用新的SF Symbols时,这些符号在我的iPhone 8上似乎变形了,而在iPhone 11 Simulator上,一切都很好。 在iPhone 8上,这些符号似乎水平挤压,使其变得过高。我做了一个gif来说明问题。 gif显示了两个过渡的屏幕截图。八分之一,十一分之一:
还有其他人有这个问题吗?这是怎么回事?
编辑:
IB属性。对于包含视图的边缘,此按钮限制为全部。
编辑#2:为符号指定字体时,将正确调整符号的大小,并缩放“大”。我尝试了SystemFont“标题”。
答案 0 :(得分:1)
用代码在按钮的图像视图上设置内容模式似乎可以解决。
button.imageView?.contentMode = .scaleAspectFit
下面的屏幕快照中的信息圈是一个使用'info.circle.fill'SF符号的UIButton。
答案 1 :(得分:0)
我还没有尝试过所有符号,但是看起来至少所有基于圆形的符号都有此问题。
编辑:有关使用图像视图的contentMode的解决方法,请参见fahlout's answer。
您已经注意到,在常规/中号字体大小为17pt的情况下,某些符号未按预期呈现,并且某些形状变形。
一些观察:
以下是circle
符号(绿色)在不同比例和大小下的可视比较,并在Photoshop中覆盖了一个参考圆(红色):
我们可以在这里看到,无论在任何情况下,圆形符号都不是一个完美的圆形,并且水平缺少一个或两个像素(取决于字体大小)是完美的圆形。
我已经制作了一个显示问题的项目:https://github.com/guillaumealgis/UIButton-SFSymbol-Squished
不幸的是,对于这个问题,我没有一个好的解决方案或解决方法,因为它似乎是UIKit的内部错误。
编辑:有关使用图像视图的contentMode的解决方法,请参见fahlout's answer。
您还应该向Apple提交反馈,以增加修复此错误的机会! (我是FB7461981苹果人?)