Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS-是否可以使UIFont系统字体斜体和精简(不使用fontWithName:)?_Ios_Objective C_Uifont_Uifontdescriptor_Uifontweighttrait - Fatal编程技术网

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对象,一个用于“精简”,另一个用于“斜体”,现在您可以使用任何需要的字体,甚至斜体或精简。