Xcode 5でカスタムフォントを追加する方法と、プロジェクト内のすべてのラベルをそのフォントに変更する方法を教えてください。これはプログラムでしかできないと聞いたことがありますか?
より良いオプションは、新しいフォントをシステム/ OSフォントディレクトリに追加し、そこからストーリーボードに追加したり、NSAttributed文字列で使用したりすることです。
手順:
お役に立てば幸いです!
カスタムフォントを使用して、すべてのラベルをプログラムで設定する必要があります。
カスタムフォントを使用するには:
1 /リソース(フォント.ttfまたは.otf)などのカスタムフォントをプロジェクトに追加します
2/info.plistにキーUIAppFonts(アプリケーションが提供するフォント)と各カスタムフォントの名前(例:SohoGothicStd.ttf)を追加します
3 /フォントを使用するためのマクロを作成できます
#define FONT_SOHO_STD(s) [UIFont fontWithName:@"SohoGothicStd" size:s]
4 /ラベルpar exempleにこのマクロを使用します。
_myLabel.font = FONT_SOHO_STD(15.0f);
アプリケーション全体のすべてのラベルにカスタムフォントを設定するには、[UILabel appearance]
プロキシを使用する必要があると思います。 AppDelegate
didFinishLaunchingWithOptions
関数に次の行を追加して、プロジェクトのすべてのUILabel
sにカスタムフォントを設定します。
UIFont *newFont = [UIFont fontWithName:@"My-Custom-Font-Name" size:14];
[[UILabel appearance] setFont:newFont];
注:フォントがXcodeプロジェクトにあることを確認する必要があります。
以下は、プロジェクトにカスタムフォントを追加するための手順です。
Xcode
をリソースとして使用して、カスタムフォントファイルをプロジェクトに追加しますUIAppFonts
という名前のInfo.plist
ファイルにキーを追加します。UIAppFonts
配列のアイテムとしてフォントファイルの完全な名前(拡張子を含む)を入力します。Info.plist
はい、コードでそれを行う必要があります。 XCode5がそのような新しい機能を追加したとは思わない。プログラムで実行するには、次の手順を実行します。
UILabelのサブクラスであるクラスを作成し、Helverica-Boldでフォントサイズ14のTitleのようなものがあると言います
IN .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オブジェクトが同じ色とフォントサイズになるようにします。
次の手順を使用して、Xcodeでカスタムフォントを作成できます。
これで、ラベルのフォントを次のように使用できます。
[lblName setFont:[UIFont fontWithName:@“CustomFontName” size:14.0]];
ここでの回答は問題ありませんが、カスタムラベルの設定をできるだけ少なくし、サイズをハードコーディングしないことをお勧めします。次のように簡単に実行できます。
#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
これにより、ストーリーボードで設定した他のすべての設定が尊重され、すべてを管理しやすくなります。