【问题标题】:iOS - Is it possible to make UIFont SystemFont Italic and Thin (without using fontWithName:)?iOS - 是否可以制作 UIFont SystemFont Italic 和 Thin(不使用 fontWithName :)?
【发布时间】:2016-02-02 06:38:39
【问题描述】:

我的应用仅使用系统字体,我正在使用功能创建它们 -

+ (UIFont * _Nonnull)systemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight

如何使用 UIFontWeightThin 权重将系统字体设为斜体?

我不能使用对特定系列字体 (fontWithName:) 的调用,因为我希望它只是系统字体。

谢谢:)

【问题讨论】:

标签: ios objective-c uifont uifontdescriptor uifontweighttrait


【解决方案1】:

您应该首先创建包含字体类型的字体描述符,如果它是斜体、粗体或细等。

UIFontDescriptor* desc = [UIFontDescriptor fontDescriptorWithFontAttributes:
                          @{
                            UIFontDescriptorFaceAttribute: @"Thin"
                            }
                          ];

然后创建一个包含描述符信息的字体对象

UIFont *font = [UIFont fontWithDescriptor:desc size:17];

所以,将你的字体对象设置为你的标签。

现在你得到了一个使用系统字体的字体对象,但你可以在不使用 fontWithName 的情况下更改它的类型和大小。

【讨论】:

  • 但是如何制作同时具有“Thin”和“Italic”字体属性的字体呢?字典中不能有重复的键。
  • @DielsonSales 您可以创建两个 UIFontDescription 对象,一个用于“瘦”,一个用于“斜体”,现在您可以使用任何您想要的字体,甚至是斜体或细。
【解决方案2】:

这样的事情怎么样:

[youLabel setFont:[UIFont fontWithName:[youLabel.font fontName] size:UIFontWeightThin]];

【讨论】:

  • 尺寸与重量不同。您不应传递UIFontWeightThin,而应将文本的大小传递给 setFont:size: 方法。
猜你喜欢
  • 2012-05-02
  • 2012-06-20
  • 2013-07-07
  • 2015-07-04
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多