web-dev-qa-db-ja.com

SwiftでUIButtonのフォントを変更する方法

Swiftを使ってUIButtonのフォントを変更しようとしています...

myButton.font = UIFont(name: "...", 10)

しかし.fontは非推奨であり、そうでなければフォントを変更する方法がわかりません。

助言がありますか?

163
Stephen Fox

代わりにtitleLabelを使用してください。 fontプロパティはiOS 3.0では非推奨です。 Objective-Cでも機能しません。 titleLabelUIButtonにタイトルを表示するために使用されるラベルです。

myButton.titleLabel?.font =  UIFont(name: YourfontName, size: 20)

ただし、タイトルテキストを設定している間はsetTitle:forControlState:のみを使用してください。タイトルのテキストを直接設定するためにtitleLabelを使用しないでください。

340
codester

Swift 3.0の場合:

button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)

「boldSystemFont」と「16」は、カスタムフォントとサイズに置き換えることができます。

61
ruthless_g

ドット記法はすごい(Swift 4.2)????

btn.titleLabel?.font = .systemFont(ofSize: 12)
27
eonist

あなたはそれを設定するためにtitleLabelの展開を強制する必要はありません。

myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)

ここではtitleLabelを使用していないので、オプションでそれを使用することができます。それがnilである場合は、何もしません。

また、他の人が言っているように、fontプロパティは廃止予定であり、タイトルテキストを設定するときはsetTitle:forControlState:を必ず使用してください。

9
teradyl

のドキュメントから

ボタンにテキストを表示するために使用されるフォント。 (iOS 3.0では非推奨です。代わりに fonttitleLabelプロパティを使用してください。)

6
zneak

フォントサイズの問題がある場合(フォントがサイズ変更に反応しない).

@codesterは正しいコードを持っています:

myButton.titleLabel!.font =  UIFont(name: YourfontName, size: 20)

しかし、私のフォントサイズは変わりませんでした。私は存在しないフォントを要求しているのです( "HelveticaNeue-Regular")。それはクラッシュを引き起こしていませんでした、しかしそれが原因でそのフォントステートメントを単に無視しているようでした。フォントを既存のものに変更したら、 "size:x"に変更するとレンダリングされます。

5
Dave G

これはSwift 3.0で動作します。

btn.titleLabel?.font = UIFont(name:"Times New Roman", size: 20) 
4
ram

ここで 見てください

代わりにボタンのtitleLabelのフォントを設定してください。

myButton.titleLabel!.font = UIFont(name: "...", 10)
4
Connor

あなたはtitleLabelプロパティを通らなければなりません。

button.titleLabel.font

fontプロパティはiOS 3.0から非推奨になりました。

4
Chris Wagner

以下のような異なる種類のシステムフォントを使用できます

myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
myButton.titleLabel?.font = UIFont.italicSystemFont(ofSize:UIFont.smallSystemFontSize)
myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: UIFont.buttonFontSize)

下記のようなあなたのカスタムフォント

    myButton.titleLabel?.font = UIFont(name: "Helvetica", size:12)
3
Sultan Ali

AttributedStringをUIButtonに設定している場合は、次のことができます。

let attributedText = NSAttributedString(string: "Hello", attributes: [NSAttributedStringKey.font: UIFont(name: "Calibri", size: 19)])
okayButton.setAttributedTitle(attributedText, for: .normal)
3
Anirudha Mahale

サイズだけを変更する必要がある場合(Swift 4.0):

button.titleLabel?.font = button.titleLabel?.font.withSize(12)
2
Karbaman

この方法は今はうまくいきません。

 btn.titleLabel?.font = UIFont(name: "Helvetica", size:12)

これは動作します:

 btn.titleLabel?.font = UIFont.init(name: "Helvetica", size:12)
1
RealNmae

例:button.titleLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)

  • あなたがそれ自身の家族からのデフォルトのフォントを使いたいならば、例えば、使用してください: "HelveticaNeue"
  • ファミリーフォントを指定したい場合は、例えば: "HelveticaNeue-Bold"を使用してください。
1
janaz

私のためにこの仕事、ありがとう。フォント名だけでなく、文字サイズを変更したいのですが。

var fontSizeButtonBig:Int = 30

btnMenu9.titleLabel?.font = .systemFont(ofSize:CGFloat(fontSizeButtonBig))

0
mahasam