UILabelのフォントサイズとフォント名を取得するにはどうすればよいですか?


105

インターフェイスビルダーでフォントサイズとフォント名を設定したUILabelがあります。次に、ViewControllerで両方の値を読み取る必要があります。

これどうやってするの?


この方法はiOS7は、この記事を見てみましょう廃止されました stackoverflow.com/questions/19128797/...
マリア・

回答:


254

プロパティをビューコントローラの.hファイルに追加します。

@property (nonatomic, retain) IBOutlet UILabel *label;

Interface Builderの「File's Owner」アウトレットの下でこのIBOutletにラベルをリンクします。ARCを使用していない場合は、必ず-deallocで解放してください。

- (void)dealloc
{
    [self.label release];
    [super dealloc];
}

次に、フォント名とサイズを取得するために必要なのは

NSString *fontName = self.label.font.fontName;
CGFloat fontSize = self.label.font.pointSize;

3
動作しません。テキストを書き込むことはできますが、fontNameとpointSizeがnullです。
ティム

プログラムによってラベルのテキストを変更できるが、fontNameとpointSizeにアクセスできないということですか?上記の回答を編集して、labelの代わりにself.labelを含めました。これは、labelのインスタンス変数の作成については言及しなかったためです。
ネッド

また、ファイルの所有者(ビューコントローラー)で作成したIBOutletを使用して、Interface Builderでラベルをフックしていることを確認してください。
2011

2
ああ、私はIBでファイルの所有者との接続を忘れました。
Tim


15

ポイントサイズの値は、UIFontサイズプロパティで使用されるのフォントサイズではありません。たとえば、インターフェイスビルダーのフォントサイズを14に設定し、pointSizeを印刷すると、11しか得られないとします。


現在動作しているようです。私は... 17へのインタフェースビルダ/ストーリーボードエディタでラベルのフォントサイズを設定した場合はmyLabel.font.pointSizeリターン17
デレクSoike

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.