23

您将如何在 Xcode 5 中添加自定义字体以及如何将项目中的每个标签更改为该字体?因为我听说您只能以编程方式执行此操作?

4

6 回答 6

70

您需要使用自定义字体以编程方式设置每个标签。

要使用自定义字体:

1/ 在项目中添加自定义字体,如资源(字体 .ttf 或 .otf)

2/ 在您的 info.plist 添加关键 UIAppFonts(应用程序提供的字体)和每个自定义字体的名称(例如:SohoGothicStd.ttf)

3/ 你可以创建宏来使用你的字体

#define FONT_SOHO_STD(s) [UIFont fontWithName:@"SohoGothicStd" size:s]

4/将此宏用于标签示例:

_myLabel.font = FONT_SOHO_STD(15.0f);
于 2013-09-22T08:46:44.137 回答
15

我相信您需要使用[UILabel appearance]代理为您的应用程序中的所有标签设置自定义字体。将以下行添加到您的函数中,为项目中的所有 sAppDelegate didFinishLaunchingWithOptions设置自定义字体。UILabel

UIFont *newFont = [UIFont fontWithName:@"My-Custom-Font-Name" size:14];
[[UILabel appearance] setFont:newFont];

注意:您需要确保您的字体在您的 Xcode 项目中。

您可以按照以下步骤将自定义字体添加到项目中。

  1. Xcode使用作为资源将您的自定义字体文件添加到您的项目中
  2. 为您的文件添加一个Info.plist名为UIAppFonts.
  3. 将此键设为数组
  4. 对于您拥有的每种字体,输入字体文件的全名(包括扩展名)作为UIAppFonts数组的项目
  5. 节省Info.plist

步骤来自:我可以在 iPhone 应用程序中嵌入自定义字体吗?

于 2013-09-22T11:14:23.483 回答
5

是的,您需要通过代码来完成。我认为 XCode5 没有添加任何类似的新功能。要以编程方式执行以下操作:

创建一个作为 UILabel 子类的类,然后说你有类似 Title 的东西,它的字体大小为 14,Helverica-Bold

在 .h 文件中

#import <UIKit/UIKit.h>

@interface MyLabel : UILabel {

}

@end

在 .m 文件中

    #import "MyLabel.h"

    @implementation MyLabel

    - (id)initWithCoder:(NSCoder *)coder {
    self = [super initWithCoder:coder];
    if (self) {
        self.font = [UIFont fontWithName:@"Helvetica-Bold" size:14];
    }
    return self;
}

    @end

另一个不使用单独子类的例子

-(UILabel *) myTitleLabel {
    UILabel *label = [[UILabel alloc] init];
    label.backgroundColor=[UIColor clearColor];
    [label setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14]];
    label.textColor=[UIColor colorWithRed:(79.0 / 255.0) green:(79.0 / 255.0) blue:(79.0 / 255.0) alpha: 1];
    [label setTextAlignment:NSTextAlignmentLeft];
    [label sizeToFit];
    return label;
}

然后您可以使用 myTitleLabel 类创建一个对象,以便所有 titleLabel 对象具有相同的颜色和字体大小。

于 2013-09-22T08:42:31.997 回答
2

更好的选择是将新字体添加到您的系统/操作系统字体目录,然后可以从那里将其添加到情节提要中或与 NSAttributed 字符串一起使用。

脚步:

  1. 下载您的字体 .ttf 文件
  2. 转到情节提要中的任何标签/文本视图,然后在右上角的属性检查器中选择:“文本”然后选择 >“属性”
  3. 单击字体名称旁边的小 T 图标以打开字体编辑器
  4. 转到 cog/wheel/setting 图标并选择“管理字体”
  5. 单击右数第二个“+”按钮并导航到您的字体 .ttf 文件以添加到系统字体集合
  6. 现在通过更改情节提要或代码中的字体名称来使用您的字体:)

希望有帮助!

于 2014-09-12T15:51:23.223 回答
1
于 2014-08-28T12:04:24.860 回答
1

这里的答案很好,但我建议在您的自定义标签中设置尽可能少,并且绝对不要硬编码大小。您可以像这样轻松地做到这一点:

#import "CustomFontLabel.h"

@implementation CustomFontLabel

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self setFontStyle];
    }
    return self;
}

- (id)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];

    if (self) {
        [self setFontStyle];
    }

    return self;
}

- (void)setFontStyle {
    CGFloat fontSize = self.font.pointSize;

    [self setFont:[UIFont fontWithName:@"LindenHill" size:fontSize]];
}

@end

这将尊重您在 Storyboard 中设置的所有其他设置,从而更轻松地管理所有内容。

于 2013-11-13T17:34:23.257 回答