IBを中心として使用してUIButtonのタイトルを設定できません。タイトルは複数行です。
このように与えています
しかし、私はこのようにしたい
私はこれにスペースを与えましたが、私はそれをしたくありません。場合によっては正確に位置合わせされておらず、位置合わせを設定するUILabelのプロパティがあることは知っていますが、そのためのコードは書きたくありません。IBからすべてを設定したいだけです。
ありがとう
ストーリーボードでキーパスを設定できます
テキストを複数行のタイトルに設定します。 hello
⌥ + ↵ multiline
押す必要があります ⌥ + ↵ テキストを次の行に移動します。
次に、キーパスを追加します
titleLabel.textAlignment
はNumber
および値1
として、1
はNSTextAlignmentCenter
を意味しますtitleLabel.numberOfLines
Number
および値0
、0
は任意の行数を意味します
これはIB/Xcodeには反映されませんが、実行時に中央に配置されます(デバイス/シミュレーター)
Xcodeの変更を確認するには、次の手順を実行する必要があります(これらの手順をスキップできることを忘れないでください)。
UIButtonをサブクラス化して、ボタンを設計可能にします。
import UIKit
@IBDesignable class UIDesignableButton: UIButton {}
変更可能なボタンにこの設計可能なサブクラスを割り当てます。
コードを書きたい場合は、長いプロセスを実行します
1.ボタンのIBOutlet
を作成します
2.viewDidLoadでコードを書く
btn.titleLabel.textAlignment = .Center
btn.titleLabel.numberOfLines = 0
Xcodeの新しいバージョン(私の場合はxcode 6.1)には、title属性のプロパティがありますAttributed
を選択してから、テキストを選択し、下の中央オプションを押します
P.S。テキストが複数行になっていないため、
btn.titleLabel.numberOfLines = 0
これにより、期待どおりの結果が得られます。
Objective-C:
[myButton.titleLabel setTextAlignment:UITextAlignmentCenter];
IOS 6以降の場合は
[myButton.titleLabel setTextAlignment: NSTextAlignmentCenter];
tyler53の答え で説明されているように
スイフト:
myButton.titleLabel?.textAlignment = NSTextAlignment.Center
次の行を使用します。
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
これにより、コンテンツが(水平方向に)中央に配置されます。
また、ラベル内のテキストも中央に設定する場合は、次を使用します。
[labelOne setTextAlignment:UITextAlignmentCenter];
IBを使用する場合、XCode 4にリンクされている小さなサンプルをここに用意しましたが、十分な詳細を提供する必要があります(プロパティ画面の上にプロパティタブが表示されます。XCodeにも同じタブがあります。 3.x):
UIButtonの場合、以下を使用する必要があります-
[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
IOS 8およびSwiftの場合
btn.titleLabel.textAlignment = NSTextAlignment.Center
または
btn.titleLabel.textAlignment = .Center
現在iOS 6以降を使用している人のために、UITextAlignmentCenterは廃止されました。 NSTextAlignmentCenterになりました
例:mylabel.textAlignment = NSTextAlignmentCenter;
は完全に機能します。
Swift 4の場合、xcode 9
myButton.contentHorizontalAlignment = .center
BtnがUIButtonを参照すると仮定すると、複数行のキャプションを水平方向の中央に変更するには、iOS 6以降で次のステートメントを使用できます。
self.btn.titleLabel.textAlignment = NSTextAlignmentCenter;
UITextAlignmentCenter
はiOS6で廃止されました
代わりに、次のコードを使用できます。
btn.titleLabel.textAlignment=NSTextAlinmentCenter;
Swift 3.0の場合
btn.titleLabel?.textAlignment = .center
実際には、インターフェイスビルダーで実行できます。
[タイトル]を[属性]に設定してから、中央揃えを選択する必要があります。
このようにしてみてください:
yourButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
yourButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
Swift 4の場合:
@IBAction func myButton(sender: AnyObject) {
sender.titleLabel??.textAlignment = NSTextAlignment.center
sender.setTitle("Some centered String", for:UIControlState.normal)
}
ストーリーボードからこれを行うことができます。ボタンを選択します。改行を「ワードラップ」に設定し、タイトル「プレーン」を「属性」に設定します。 「中央揃え」を選択します。この部分は重要です=> ...(詳細)ボタンをクリックします。そして、改行モードを「文字の折り返し」に選択します。
UIButtonはsetTextAlignmentをサポートしません。したがって、ボタンのテキストの配置にはsetContentHorizontalAlignmentを使用する必要があります
ご参考までに
[buttonName setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];