Android 提供了一个属性 textScaleX
,允许水平缩放文本,同时保留字体高度。我在 Android 应用程序中广泛使用它(特别是对于不像英语那么紧凑的语言),并希望在 ios 中找到类似的东西。
显然,我可以将文本绘制到图形上下文并将其缩放为图像,但这似乎是一个相当尴尬的解决方案,它将所有文本项都转换为 ImageView-s。
有没有一种原生方式来水平缩放文本?例如,可能有一个选项可以基于系统字体创建自定义字体并更改负责文本宽度的参数。
最佳答案
使用 UIFontDescriptor
的 matrix
属性。
下面是一个示例,它采用 self.label
中的 UILabel
并将其字体设置为水平拉伸(stretch) 1.3 倍。
UIFont* baseFont = self.label.font;
UIFontDescriptor *baseDescriptor = baseFont.fontDescriptor;
UIFontDescriptor *newDescriptor = [baseDescriptor fontDescriptorWithMatrix:
CGAffineTransformMakeScale(1.3, 1.0)];
UIFont* newFont = [UIFont fontWithDescriptor:newDescriptor size:0.0];
self.label.font = newFont;
关于ios:水平缩放字体而不光栅化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30960189/