Ich kann den Titel von UIButton nicht mit IB als Zentrum festlegen. Mein Titel ist mehrzeilig.
Es gibt so
Aber ich möchte so
Ich habe hier Platz gegeben, aber das möchte ich nicht. Da es in einigen Fällen nicht genau ausgerichtet ist und ich weiß, dass es eine Eigenschaft von UILabel gibt, um die Ausrichtung festzulegen, möchte ich keinen Code dafür schreiben. Ich möchte nur alles von IB aus festlegen.
Vielen Dank
ios
objective-c
uibutton
interface-builder
Inder Kumar Rathore
quelle
quelle
self.yourButton.titleLabel.textAlignment = UITextAlignmentCenter;
Antworten:
Damit erhalten Sie genau das, was Sie erwartet haben:
Ziel c:
Für iOS 6 oder höher ist es
wie in der Antwort von tyler53 erklärt
Schnell:
Swift 4.x und höher
quelle
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
Verwenden Sie die Zeile:
Dies sollte den Inhalt (horizontal) zentrieren.
Wenn Sie den Text innerhalb des Etiketts auch in die Mitte setzen möchten, verwenden Sie:
[labelOne setTextAlignment:UITextAlignmentCenter];
Wenn Sie IB verwenden möchten, habe ich hier ein kleines Beispiel, das in XCode 4 verlinkt ist, aber genügend Details enthalten sollte (beachten Sie auch, dass oben auf dem Eigenschaftenbildschirm die Registerkarte "Eigenschaften" angezeigt wird. In XCode finden Sie dieselben Registerkarten 3.x):
quelle
Lösung1
Sie können den Schlüsselpfad im Storyboard festlegen
Stellen Sie den Text auf Ihren mehrzeiligen Titel ein, z. B.
hello
⌥ +↵multiline
Sie müssen ⌥ + drücken ↵, um den Text in die nächste Zeile zu verschieben.
Fügen Sie dann den Schlüsselpfad hinzu
titleLabel.textAlignment
alsNumber
und den Wert1
,1
MittelNSTextAlignmentCenter
titleLabel.numberOfLines
wieNumber
und den Wert0
,0
bedeutet eine beliebige Anzahl von LeitungenDies wird nicht auf IB / Xcode reflektiert, sondern zur Laufzeit in der Mitte sein (Gerät / Simulator)
Wenn Sie die Änderungen in Xcode sehen möchten, müssen Sie Folgendes tun: (Denken Sie daran, dass Sie diese Schritte überspringen können.)
Unterklassifizieren Sie den UIButton, um die Schaltfläche gestaltbar zu machen:
Weisen Sie diese gestaltbare Unterklasse den Schaltflächen zu, die Sie ändern:
Lösung2
Wenn Sie den Code schreiben möchten, führen Sie den langen Vorgang aus
1.Erstellen Sie
IBOutlet
für die Schaltfläche2.Schreiben Sie Code in viewDidLoad
Lösung3
In der neueren Version von xcode (meine ist xcode 6.1) haben wir den Titel "Eigenschaft"
Wählen Sie
Attributed
dann den Text aus und drücken Sie die mittlere Option untenPS Der Text kam nicht mehrzeilig, dafür muss ich das einstellen
btn.titleLabel.numberOfLines = 0
quelle
Line Breaking = Clip
, es wird den Text in mehrzeilig verwandelnbtn.titleLabel.textAlignment
, funktioniert es großartig.Für UIButton sollten Sie Folgendes verwenden: -
quelle
Für iOS 8 und Swift
btn.titleLabel.textAlignment = NSTextAlignment.Center
oder
btn.titleLabel.textAlignment = .Center
quelle
Für diejenigen unter Ihnen, die jetzt iOS 6 oder höher verwenden, ist UITextAlignmentCenter veraltet. Es ist jetzt NSTextAlignmentCenter
BEISPIEL:
mylabel.textAlignment = NSTextAlignmentCenter;
Funktioniert perfekt.quelle
Für Swift 4 xcode 9
quelle
Angenommen, btn bezieht sich auf einen UIButton, können Sie in iOS 6 oder höher die folgende Anweisung verwenden, um eine mehrzeilige Beschriftung so zu ändern, dass sie horizontal zentriert wird:
quelle
UITextAlignmentCenter
ist in iOS6 veraltetStattdessen können Sie diesen Code verwenden:
btn.titleLabel.textAlignment=NSTextAlinmentCenter;
quelle
Für Swift 3.0
quelle
Für Swift 4:
quelle
Eigentlich können Sie es im Interface Builder tun.
Sie sollten Title auf "Attributed" setzen und dann die Ausrichtung der Mitte auswählen.
quelle
Versuchen Sie es wie folgt:
quelle
Sie können dies über das Storyboard tun. Wählen Sie Ihre Schaltfläche. Stellen Sie den Zeilenumbruch 'Zeilenumbruch' ein und setzen Sie Ihren Titel 'Einfach' auf 'Attributiert'. Wählen Sie 'Center Alignment'. Dieser Teil ist wichtig => Klicken Sie auf die Schaltfläche ... (Mehr). Und wählen Sie den Zeilenumbruchmodus auf "Zeichenumbruch".
quelle
UIButton unterstützt setTextAlignment nicht. Sie müssen sich also für die Ausrichtung des Schaltflächentexts für setContentHorizontalAlignment entscheiden
Als Referenz
quelle