iOS-是否可以使UIFont系统字体斜体和精简(不使用fontWithName:)?
我的应用程序只使用系统字体,我正在使用以下功能创建它们-iOS-是否可以使UIFont系统字体斜体和精简(不使用fontWithName:)?,ios,objective-c,uifont,uifontdescriptor,uifontweighttrait,Ios,Objective C,Uifont,Uifontdescriptor,Uifontweighttrait,我的应用程序只使用系统字体,我正在使用以下功能创建它们- + (UIFont * _Nonnull)systemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight 如何使系统字体斜体加上weight UIFontWeightThin 我无法使用对特定系列字体(fontWithName:)的调用,因为我只希望它是系统字体 谢谢:)像这样的东西怎么样: [youLabel setFont:[UIFont fontWithName:[youLabe
+ (UIFont * _Nonnull)systemFontOfSize:(CGFloat)fontSize weight:(CGFloat)weight
如何使系统字体斜体加上weight UIFontWeightThin
我无法使用对特定系列字体(fontWithName:)的调用,因为我只希望它是系统字体
谢谢:)像这样的东西怎么样:
[youLabel setFont:[UIFont fontWithName:[youLabel.font fontName] size:UIFontWeightThin]];
您应该首先创建包含字体类型(斜体、粗体或细体等)的字体描述符
UIFontDescriptor* desc = [UIFontDescriptor fontDescriptorWithFontAttributes:
@{
UIFontDescriptorFaceAttribute: @"Thin"
}
];
然后创建一个保存描述符信息的字体对象
UIFont *font = [UIFont fontWithDescriptor:desc size:17];
因此,将字体对象设置为标签
现在您得到了一个使用system font的font对象,但您可以更改其类型和大小,而无需使用fontWithName。您可能想看看这个答案,我不想使用UIFont fontWithName:因为我希望它是系统字体(Helvetica用于ios 8,SF用于ios 9等)。大小与重量不一样。您不应该传递
UIFontWeightThin
,而应该将文本的大小传递给setFont:size:方法。但是如何使字体同时具有“Thin”和“Italic”面属性呢?字典中不能有重复的关键字。@DielsonSales您可以创建两个UIFontDescription对象,一个用于“精简”,另一个用于“斜体”,现在您可以使用任何需要的字体,甚至斜体或精简。