UIButton-Titelausrichtung und mehrzeilige Unterstützung

68

Wie setze ich den Titel von a so UIButton, dass er linksbündig ist, und wie kann ich mehrere Textzeilen in a UIButtonanzeigen?

Raju
quelle
1
Sieht aus wie iPhone-Entwicklung.
Kekoa
22
Raju, du solltest deine Antworten wirklich akzeptieren ... das ist es, was das System zum Laufen bringt.
Codezy
1
UILineBreakModeWordWrap funktioniert gut, aber UIControlContentHorizontalAlignmentLeft ist genau wie Mitte-Links und nicht genau mittig ausgerichtet wie ein UILabel
Amit Battan
1
Akzeptiere einen der Antworten unten.
Tudor
2
Sie sollten eine der folgenden Antworten akzeptieren. Der zweite hat Diagramme!
Ziggy

Antworten:

187

Hier ist der Code, um die UIButton-Ausrichtung auch im Code durchzuführen: -

[myButton setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
Ian Kershaw
quelle
131

Um die Ausrichtung von a festzulegenUIButton , suchen Sie im Attributinspektor im Interface Builder nach der Schaltfläche. Es gibt einen Abschnitt namens Ausrichtung. Stellen Sie es auf links. Oder richtig oder was auch immer du willst.

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie dazu die contentHorizontalAlignmentEigenschaft von UIControl. Sie können eine der folgenden Eigenschaften festlegen:

UIControlContentHorizontalAlignmentCenter
UIControlContentHorizontalAlignmentLeft
UIControlContentHorizontalAlignmentRight
UIControlContentHorizontalAlignmentFill

[myButton setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight];

Keine dieser Optionen sieht besonders gut aus (wie Sie oben sehen können), und Sie haben möglicherweise mehr Glück, wenn Sie die contentEdgeInsetsEigenschaft verwenden UIButton, den Inhalt neu zu positionieren.

Um einen mehrzeiligen Titel für a festzulegenUIButton , lesen Sie diesen Forumsbeitrag, in dem das Ändern der Schaltflächenbezeichnung beschrieben wird.

Oder Sie können diesen Code verwenden, um schnell eine zweizeilige Schaltfläche zu erstellen:

myButton.titleLabel.textAlignment = UITextAlignmentCenter;
myButton.titleLabel.lineBreakMode = UILineBreakModeCharacterWrap;
[myButton setTitle:@"Siegfried\nRoy" forState:UIControlStateNormal];

Geben Sie hier die Bildbeschreibung ein

Raju, vergiss nicht, Fragen als akzeptiert zu markieren.

Nevan König
quelle
11
Sie haben es nicht genug bekommen, um einige Ihrer beantworteten Fragen zu markieren ;-)
Rog
2
numberOfLinesfunktioniert unter iOS5, muss aber noch lineBreakModefür iOS 4 eingestellt werden.
ıɾuǝʞ
Beachten Sie, dass es beim Festlegen des Titels wichtig ist, die Nachricht zu verwenden, die den UIControlState angibt. Wenn Sie es nur wie eine Eigenschaft festlegen, wird die Größe der Beschriftung für den neuen Text nicht geändert. Siehe: stackoverflow.com/questions/4576331/…
AndrewCr
@ AndrewCr Nur um klar zu sein, ich verwende setTitle:forStateim obigen Beispiel.
Nevan King
2
Zu Ihrer Information: UITextAlignmentCenter ist in iOS 6 veraltet und NSTextAlignmentCenter sollte jetzt stattdessen verwendet werden.
Chris Hall
7

Eigentlich können Sie das lineBreakModeauf UILineBreakModeWordWrapoder setzen UILineBreakModeCharacterWrap. Dadurch wird der Text bei Bedarf in mehrere Zeilen unterteilt.

Marc
quelle
6

Versuche dies

    myButton.titleLabel.textAlignment = UITextAlignmentLeft;
    myButton.titleLabel.lineBreakMode = UILineBreakModeCharacterWrap;
    myButton.titleLabel.numberOfLines = 0;
rakeshNS
quelle
3

Um einen Paragraph-Effekt hinzuzufügen, können Sie die Größe des Titels ändern.

Für Alinea-Effekt

Anthone
quelle