xcode 为 UILabel 设置一些不同字体的问题

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/9907100/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 23:48:38  来源:igfitidea点击:

Issues with setting some different font for UILabel

iphoneiosxcode

提问by pie

I would like to set the font size and familyname to the titleLabel. //Helvetica Neue UltraLight

我想将字体大小和姓氏设置为 titleLabel。//Helvetica Neue UltraLight

 [titleLabel setFont:[UIFont fontWithName:@"Helvetica Neue UltraLight" size:25.0f]];

This is not working.

这是行不通的。

Kindly tell me what could be wrong?

请告诉我可能有什么问题?

Any help will be appreciated?

任何帮助将不胜感激?

回答by Matthias Bauch

the correct fontName is @"HelveticaNeue-UltraLight".

正确的 fontName 是@"HelveticaNeue-UltraLight".

use something like this to get a nicely formatted list of available font names:

使用这样的东西来获得一个格式良好的可用字体名称列表:

NSMutableString *str = [NSMutableString stringWithCapacity:1000];
for (NSString *familyName in [UIFont familyNames]) {
    [str appendFormat:@"%@\n", familyName];
    for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
        [str appendFormat:@"    %@\n", fontName];
    }
    [str appendString:@"\n"];
}
NSLog(@"%@", str);


this is the current list for iOS5.1:

这是 iOS5.1 的当前列表:

Thonburi
    Thonburi-Bold
    Thonburi

Snell Roundhand
    SnellRoundhand-Bold
    SnellRoundhand-Black
    SnellRoundhand

Academy Engraved LET
    AcademyEngravedLetPlain

Marker Felt
    MarkerFelt-Wide
    MarkerFelt-Thin

Geeza Pro
    GeezaPro-Bold
    GeezaPro

Arial Rounded MT Bold
    ArialRoundedMTBold

Trebuchet MS
    TrebuchetMS
    TrebuchetMS-Bold
    TrebuchetMS-Italic
    Trebuchet-BoldItalic

Arial
    Arial-BoldMT
    ArialMT
    Arial-ItalicMT
    Arial-BoldItalicMT

Marion
    Marion-Regular
    Marion-Bold
    Marion-Italic

Gurmukhi MN
    GurmukhiMN
    GurmukhiMN-Bold

Malayalam Sangam MN
    MalayalamSangamMN-Bold
    MalayalamSangamMN

Bradley Hand
    BradleyHandITCTT-Bold

Kannada Sangam MN
    KannadaSangamMN
    KannadaSangamMN-Bold

Bodoni 72 Oldstyle
    BodoniSvtyTwoOSITCTT-Book
    BodoniSvtyTwoOSITCTT-Bold
    BodoniSvtyTwoOSITCTT-BookIt

Cochin
    Cochin
    Cochin-BoldItalic
    Cochin-Italic
    Cochin-Bold

Sinhala Sangam MN
    SinhalaSangamMN
    SinhalaSangamMN-Bold

Hiragino Kaku Gothic ProN
    HiraKakuProN-W6
    HiraKakuProN-W3

Papyrus
    Papyrus-Condensed
    Papyrus

Verdana
    Verdana
    Verdana-Bold
    Verdana-BoldItalic
    Verdana-Italic

Zapf Dingbats
    ZapfDingbatsITC

Courier
    Courier-Bold
    Courier
    Courier-BoldOblique
    Courier-Oblique

Hoefler Text
    HoeflerText-Black
    HoeflerText-Italic
    HoeflerText-Regular
    HoeflerText-BlackItalic

Euphemia UCAS
    EuphemiaUCAS-Bold
    EuphemiaUCAS
    EuphemiaUCAS-Italic

Helvetica
    Helvetica-LightOblique
    Helvetica
    Helvetica-Oblique
    Helvetica-BoldOblique
    Helvetica-Bold
    Helvetica-Light

Hiragino Mincho ProN
    HiraMinProN-W3
    HiraMinProN-W6

Bodoni Ornaments
    BodoniOrnamentsITCTT

Apple Color Emoji
    AppleColorEmoji

Optima
    Optima-ExtraBlack
    Optima-Italic
    Optima-Regular
    Optima-BoldItalic
    Optima-Bold

Gujarati Sangam MN
    GujaratiSangamMN
    GujaratiSangamMN-Bold

Devanagari Sangam MN
    DevanagariSangamMN
    DevanagariSangamMN-Bold

Times New Roman
    TimesNewRomanPS-ItalicMT
    TimesNewRomanPS-BoldMT
    TimesNewRomanPSMT
    TimesNewRomanPS-BoldItalicMT

Kailasa
    Kailasa
    Kailasa-Bold

Telugu Sangam MN
    TeluguSangamMN-Bold
    TeluguSangamMN

Heiti SC
    STHeitiSC-Medium
    STHeitiSC-Light

Apple SD Gothic Neo
    AppleSDGothicNeo-Bold
    AppleSDGothicNeo-Medium

Futura
    Futura-Medium
    Futura-CondensedExtraBold
    Futura-CondensedMedium
    Futura-MediumItalic

Bodoni 72
    BodoniSvtyTwoITCTT-BookIta
    BodoniSvtyTwoITCTT-Book
    BodoniSvtyTwoITCTT-Bold

Baskerville
    Baskerville-SemiBoldItalic
    Baskerville-Bold
    Baskerville-Italic
    Baskerville-BoldItalic
    Baskerville-SemiBold
    Baskerville

Chalkboard SE
    ChalkboardSE-Regular
    ChalkboardSE-Bold
    ChalkboardSE-Light

Heiti TC
    STHeitiTC-Medium
    STHeitiTC-Light

Copperplate
    Copperplate
    Copperplate-Light
    Copperplate-Bold

Party LET
    PartyLetPlain

American Typewriter
    AmericanTypewriter-CondensedLight
    AmericanTypewriter-Light
    AmericanTypewriter-Bold
    AmericanTypewriter
    AmericanTypewriter-CondensedBold
    AmericanTypewriter-Condensed

Bangla Sangam MN
    BanglaSangamMN-Bold
    BanglaSangamMN

Noteworthy
    Noteworthy-Light
    Noteworthy-Bold

Zapfino
    Zapfino

Tamil Sangam MN
    TamilSangamMN
    TamilSangamMN-Bold

DB LCD Temp
    DBLCDTempBlack

Arial Hebrew
    ArialHebrew
    ArialHebrew-Bold

Chalkduster
    Chalkduster

Georgia
    Georgia-Italic
    Georgia-BoldItalic
    Georgia-Bold
    Georgia

Helvetica Neue
    HelveticaNeue-Bold
    HelveticaNeue-CondensedBlack
    HelveticaNeue-Medium
    HelveticaNeue
    HelveticaNeue-Light
    HelveticaNeue-CondensedBold
    HelveticaNeue-LightItalic
    HelveticaNeue-UltraLightItalic
    HelveticaNeue-UltraLight
    HelveticaNeue-BoldItalic
    HelveticaNeue-Italic

Gill Sans
    GillSans-LightItalic
    GillSans-BoldItalic
    GillSans-Italic
    GillSans
    GillSans-Bold
    GillSans-Light

Palatino
    Palatino-Roman
    Palatino-Bold
    Palatino-BoldItalic
    Palatino-Italic

Courier New
    CourierNewPSMT
    CourierNewPS-BoldMT
    CourierNewPS-BoldItalicMT
    CourierNewPS-ItalicMT

Oriya Sangam MN
    OriyaSangamMN-Bold
    OriyaSangamMN

Didot
    Didot-Italic
    Didot
    Didot-Bold

Bodoni 72 Smallcaps
    BodoniSvtyTwoSCITCTT-Book

回答by Vladimir

You use wrong font name, correct one will be:

您使用了错误的字体名称,正确的将是:

[titleLabel setFont:[UIFont fontWithName:@"HelveticaNeue-UltraLight" size:25.0f]]; 

You can see the list of all available font names for a given font family using +fontNamesForFamilyName: method in UIFont, e.g.:

您可以使用 UIFont 中的 +fontNamesForFamilyName: 方法查看给定字体系列的所有可用字体名称列表,例如:

[UIFont fontNamesForFamilyName:@"Helvetica Neue"]

Edit:Also mind that some fonts may not be present on all versions of iOS as Apple gradually adds (and sometimes probably removes) fonts from standard OS set.

编辑:还请注意,随着 Apple 逐渐从标准操作系统集中添加(有时可能会删除)字体,某些字体可能不会出现在所有版本的 iOS 上。

It appears that "HelveticaNeue-UltraLight" font present in OS starting 5.0 version. If you want to use it in older OS versions you'll need to embed it to you application - check for example this answerfor details how to do that

从 5.0 版本开始,操作系统中似乎存在“HelveticaNeue-UltraLight”字体。如果您想在较旧的操作系统版本中使用它,您需要将它嵌入到您的应用程序中 - 例如查看此答案以了解如何执行此操作的详细信息

回答by Mehul Mistri

Please see List of Fonts available in iOSand use font names according this...

请参阅iOS 中可用的字体列表并根据此使用字体名称...