LoginSignup
5
5

More than 3 years have passed since last update.

UIButtonのTitleを中央揃えにする

Last updated at Posted at 2019-10-21

UIButtonのTitleはデフォルトで中央揃えですが、なぜか左に寄ってしまうバグがあったのでコード上で中央揃えに設定しました。
何気に非常によく使います…!

環境

  • Xcode 11.0
  • Swift 5.1

ボタンのタイトル中央揃え

button.titleLabel?.textAlignment = NSTextAlignment.center
で設定。

ボタンのタイトル上下中央揃え

上下の位置も、下に寄ってしまっていたのでプロパティで設定。
button.titleLabel?.baselineAdjustment = .alignCenters

その他のプロパティ

その他のよく使うボタンタイトルに関するプロパティをまとめました。
(ボタンのタイトルはUILabelなので、UILabelのプロパティを使っているだけですが)

//Buttonのタイトルを左揃えにする
button.contentHorizontalAlignment = .left

//LabelやButtonのサイズに合わせてフォントサイズを可変にする
button.titleLabel?.adjustsFontSizeToFitWidth = true
button.titleLabel?.numberOfLines = 1
//縮小時の最小サイズを設定(文字がはみ出る場合は、この数値までは縮小される)
button.titleLabel?.minimumScaleFactor = 0.8

//lineBreakModeの設定
//表示できる部分のみを切り取る
button.titleLabel?.lineBreakMode = .byClipping
//複数行の場合、文字単位で折り返す
button.titleLabel?.lineBreakMode = .byCharWrapping
//複数行の場合、単語単位で折り返す
button.titleLabel?.lineBreakMode = .byWordWrapping
//文末を...で省略する
button.titleLabel?.lineBreakMode = .byTruncatingTail

//ボタンのタイトルラベル変更
button.setTitle("Change Title", for: .normal)

タイトルを左揃え(または右揃え)にする場合は、textAlignmentでは効かない場合がありcontentHolizontalAlignmentを使うことで反映されました。

参考

5
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5