UILabel - 在iPhone中以编程方式设置字体 - 字体

时间:2009-08-19 21:54:06

标签: iphone uilabel

我的应用程序中有以下代码。

tmp=[[UILabel alloc] initWithFrame:label1Frame];
tmp.tag=1;
tmp.textColor=[UIColor blackColor];
[tmp setFont:[UIFont fontWithName:@"American Typewriter" size:18]];
tmp.backgroundColor=[UIColor clearColor];
[cell.contentView addSubview:tmp];
[tmp release];

现在,我需要知道,

==>如何通过代码设置“Typeface = bold”?

6 个答案:

答案 0 :(得分:36)

您需要在系列中使用bold字体的名称。要查明是否有bold版本的美国打字机,请尝试输出

[UIFont fontNamesForFamilyName:@"AmericanTypewriter"] 

到控制台。

在这种情况下,您应该使用"AmericanTypewriter-Bold"

[UIFont fontNamesForFamilyName:@"AmericanTypewriter-Bold"] 

答案 1 :(得分:20)

使用setter属性怎么样:

// Create a string  
NSString *text = @"You are getting sleepy.";

// Get a font to draw it in  
UIFont *font = [UIFont boldSystemFontOfSize:28];

// Draw the string  
[text drawInRect:(CGRect)
withFont:font];

答案 2 :(得分:17)

只需NSLog您想要的字体:

NSLog(@" %@", [UIFont fontNamesForFamilyName:@"American Typewriter"]);

你得到阵列:

(
    "AmericanTypewriter-CondensedLight",
    "AmericanTypewriter-Light",
    "AmericanTypewriter-Bold",
    AmericanTypewriter,
    "AmericanTypewriter-CondensedBold",
    "AmericanTypewriter-Condensed"
)

在代码中使用您需要的任何内容:

UILabel * loading = [[UILabel alloc] initWithFrame:CGRectMake(350, 402, 150, 25)];
    [loading setFont:[UIFont fontWithName:@"AmericanTypewriter-Bold" size:12.0]];
    [loading setTextColor:[UIColor whiteColor]];
    [loading setBackgroundColor:[UIColor clearColor]];
    [loading setText:@"Loading ..."];
    [self.view addSubview:loading];

答案 3 :(得分:2)

您可以在此网站iOSfonts中获取所有iOS支持的字体名称。 预览您的确切字符串以找到最佳字体并使用它,如上面的答案所述

UILabel * myLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 400, 150, 50)];
    [loading setFont:[UIFont fontWithName:@"Avenir-Black" size:12.0]];
    [loading setTextColor:[UIColor redColor]];
    [loading setBackgroundColor:[UIColor clearColor]];
    [loading setText:@"My Label Title"];
    [self.view myLabel];

答案 4 :(得分:1)

与@devinfoley一样,您必须将-Bold添加到您正在使用的fontName。对我而言,它不适用于fontNamesForFamilyName,而是使用fontWithName:size。如果以编程方式创建UILabel,它可能会有效。在我的情况下,我只是在font的{​​{1}}扩展名中设置UILabel,并在awakeFromNib中将此扩展名设置为class Identity Inspector。使用UILabel,您可以在self.font.pointSize内设置fontSize,如果您有更多的UI元素,可以更好地处理它。

Interface Builder

如果您的- (void)awakeFromNib{ [super awakeFromNib]; [self setAdjustsFontSizeToFitWidth:YES]; [self setFont:[UIFont fontWithName:@"Font-Bold" size:self.font.pointSize]]; } 不起作用,则应打印所有font家庭成员,以便查看是否写了fonts错误。这样你也可以检查是否有fontName字体可用,如果没有打印你没有这个选项。

bold

更多NSLog (@"Available Fonts: %@", [UIFont fontNamesForFamilyName:@"Your Font"]); 内容:https://stackoverflow.com/a/8529661/1141395

答案 5 :(得分:0)

快速更新

如果您已将字体添加到应用中(如here所述),您可以使用Swift的extension功能,例如UILabel和Roboto字体:< / p>

extension UILabel {

    func setFont(style: String, size: Int){
        self.font = UIFont(name: style, size: CGFloat(size))
    }

    struct FontStyle {
        public static let italic: String = "Roboto-LightItalic"
        public static let normal: String = "Roboto-Light"
        public static let thin: String = "Roboto-Thin"
    }
}

Roboto-LightItalicRoboto-Light是TTF的字体文件名。然后,您只需致电

someUILabel.setFont(style: UILabel.FontStyle.normal, size: 20)