IBを中心としてUIButtonのタイトルを設定できません。タイトルは複数行です。
このようにあげています
でも私はこのようにしたい
私はこれにスペースを与えましたが、それをしたくありません。場合によっては正確に配置されず、配置を設定するUILabelのプロパティがあることはわかっていますが、そのためのコードを記述したくありません。IBからすべてを設定したいだけです。
ありがとう
IBを中心としてUIButtonのタイトルを設定できません。タイトルは複数行です。
このようにあげています
でも私はこのようにしたい
私はこれにスペースを与えましたが、それをしたくありません。場合によっては正確に配置されず、配置を設定するUILabelのプロパティがあることはわかっていますが、そのためのコードを記述したくありません。IBからすべてを設定したいだけです。
ありがとう
回答:
これはまさにあなたが期待していたことになります:
Objective-C:
[myButton.titleLabel setTextAlignment:UITextAlignmentCenter];
iOS 6以降の場合
[myButton.titleLabel setTextAlignment: NSTextAlignmentCenter];
tyler53の答えで説明されているように
迅速:
myButton.titleLabel?.textAlignment = NSTextAlignment.Center
Swift 4.x以降
myButton.titleLabel?.textAlignment = .center
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
次の行を使用します。
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
これにより、コンテンツが(水平に)中央に配置されます。
また、ラベル内のテキストも中央に設定する場合は、次を使用します。
[labelOne setTextAlignment:UITextAlignmentCenter];
IBを使用したい場合は、XCode 4でリンクされている小さな例をここに示しますが、十分な詳細を提供する必要があります(また、そのプロパティ画面の上にプロパティタブが表示されます。XCodeにも同じタブがあります) 3.x):
ストーリーボードでキーパスを設定できます
テキストを複数行のタイトルに設定します。例: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で)私たちは財産帰属タイトルを持って
選択しAttributed
、以下のテキストやプレスセンターのオプションを選択し
PS私が設定しなければならないそのためにテキストが複数行になっていませんでした
btn.titleLabel.numberOfLines = 0
Line Breaking = Clip
、テキストが複数行に変換されます
btn.titleLabel.textAlignment
、それは素晴らしい働きをします。
iOS 8およびSwiftの場合
btn.titleLabel.textAlignment = NSTextAlignment.Center
または
btn.titleLabel.textAlignment = .Center
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
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];
self.yourButton.titleLabel.textAlignment = UITextAlignmentCenter;