1. ホーム
  2. ios

[解決済み] UIButtonのテキスト配置を中央揃えにするには?IBを使用する

2022-05-06 01:38:35

質問

IBをセンターにしてUIButtonのタイトルを設定することができません。タイトルは複数行になります。

このように表示されます。

しかし、私はこのようなものが欲しいのです。

この中にスペースを入れていますが、そうしたくありません。UILabelのプロパティにアライメントを設定するものがあるのは知っていますが、そのためのコードを書きたくはないのです...ただ、IBからすべてを設定したいのです。

ありがとうございます。

解決方法は?

解決方法1

ストーリーボードでキーパスを設定することができます

テキストに複数行のタイトルを設定します。 hello + multiline

を押す必要があります。 + で次の行に移動します。

次に、キーパスを追加します。

titleLabel.textAlignment として Number と値 1 , 1 というのは NSTextAlignmentCenter

titleLabel.numberOfLines として Number と値 0 , 0 は任意の行数を意味する

IB/Xcode上では反映されませんが、実行時(デバイス/シミュレータ)にはセンターになります

Xcode上で変更を確認したい場合は、以下を行う必要があります。(これらのステップは省略可能です)

  1. UIButtonをサブクラス化し、ボタンがデザインできるようにします。

    import UIKit
    @IBDesignable class UIDesignableButton: UIButton {}
    
    

  2. この設計可能なサブクラスを、修正するボタンに割り当てます。

  1. 正しく行われた場合、Designables の状態が "Up to date" になると、IB で視覚的に更新されます(数秒かかることがあります)。




解決方法2

コードを書きたいのであれば、長い工程を経て

1.作成 IBOutlet ボタン用

2.viewDidLoadにコードを書く

btn.titleLabel.textAlignment = .Center
btn.titleLabel.numberOfLines = 0




解決方法3

xcodeの新しいバージョン(私はxcode 6.1です)では、attributed titleというプロパティがあります。

選択 Attributed で、テキストを選択し、下のcenterオプションを押してください。

追伸 テキストが複数行にならないので

btn.titleLabel.numberOfLines = 0