如何在iOS中将UILabel的字体名称设置为HelveticaNeue Thin?

19

我正在创建UILabel,对于标签,我可以将字体名称设置为HelveticaNeue Regular、Light、UltraLight等,但我无法将字体名称设置为HelveticaNeue Thin,它的效果不如预期。我尝试了以下代码:

label.font = [UIFont fontWithName:@"HelveticaNeue-Thin" size:16];

我在谷歌上搜索了,但没有找到解决方法。该怎么修复这个问题?谢谢。


如果您正在使用自定义字体,则必须将其添加到您的项目中。 - Himanshu Joshi
@HimanshuJoshi Helvetica Neue Thin已经在iOS中捆绑好了(至少是7版本)。 - Alessandro Vendruscolo
请检查此链接:https://dev59.com/1WIk5IYBdhLWcg3wKLSd - Nitin Gohel
也许你可以在这里找到答案:https://dev59.com/1WIk5IYBdhLWcg3wKLSd#19697354 - Himanshu Joshi
请提供需要翻译的内容。 - Nitin Gohel
@NitinGohel 我已经在答案中提供了内部链接 :P - Himanshu Joshi
4个回答

26

如果你的目标是iOS 7及以上版本,那么这个字体已经与iOS 7捆绑在一起,所以你可以使用以下代码:

label.font = [UIFont fontWithName:@"HelveticaNeue-Thin" size:16.0f];

但是,如果你的目标是iOS 6.1及以下版本,则需要嵌入该字体。你可以参考这里的链接了解如何嵌入字体。


它会导致应用程序崩溃。 - Paresh. P

19

更新答案以支持Swift

    let font = UIFont(name: "HelveticaNeue-Thin", size: 16.0)!

3
UIFontDescriptor *helveticaNeueFamily =
    [UIFontDescriptor fontDescriptorWithFontAttributes:
        @{ UIFontDescriptorFamilyAttribute: @"Helvetica Neue" }];
NSArray *matches =
    [helveticaNeueFamily matchingFontDescriptorsWithMandatoryKeys: nil];

matchingFontDescriptorsWithMandatoryKeys: 方法返回一个数组,其中包含系统上所有Helvetica Neue字体的字体描述符,例如HelveticaNeue、HelveticaNeue-Medium、HelveticaNeue-Light、HelveticaNeue-Thin等。
您可以通过应用符号特征(如粗体、斜体、扩展和压缩)来修改preferredFontForTextStyle:返回的字体。您可以使用字体描述符来修改特定的特征,如清单9-2所示。
引用自苹果官网:Custom Text Processing 或者
您无法直接应用此字体。
因此,您可以自定义您的字体。 如何在iPhone SDK中使用自定义字体?

1
这个方法对我很有用。在你的标签声明下面编写以下代码。
它将所有UILabel设置为同一字体的函数。
[[UILabel appearance]setFont:[UIFont fontWithName:@"HelveticaNeue-Thin" size:32.0f]];

要将字体设置为特定的UILabel,请使用以下代码:

[labelName setFont:[UIFont fontWithName:@"HelveticaNeue-Thin" size:15.0f]];

这对我来说似乎也有效,但是谷歌搜索表明它不应该有效,让人困惑。 - Jules

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接