Ausgabe
Ich habe folgenden Code…
UILabel *buttonLabel = [[UILabel alloc] initWithFrame:targetButton.bounds];
buttonLabel.text = @"Long text string";
[targetButton addSubview:buttonLabel];
[targetButton bringSubviewToFront:buttonLabel];
… die Idee ist, dass ich mehrzeiligen Text für die Schaltfläche haben kann, aber der Text wird immer durch das backgroundImage des UIButton verdeckt. Ein Protokollierungsaufruf zum Anzeigen der Unteransichten der Schaltfläche zeigt, dass das UILabel hinzugefügt wurde, der Text selbst jedoch nicht sichtbar ist. Ist das ein Fehler in UIButton oder mache ich etwas falsch?
Lösung
Verwenden Sie für iOS 6 und höher Folgendes, um mehrere Zeilen zuzulassen:
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
// you probably want to center it
button.titleLabel.textAlignment = NSTextAlignmentCenter; // if you want to
[button setTitle: @"Line1\nLine2" forState: UIControlStateNormal];
Verwenden Sie für iOS 5 und niedriger Folgendes, um mehrere Zeilen zuzulassen:
button.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
// you probably want to center it
button.titleLabel.textAlignment = UITextAlignmentCenter;
[button setTitle: @"Line1\nLine2" forState: UIControlStateNormal];
2017, für iOS9 vorwärts ,
Im Allgemeinen tun Sie einfach diese beiden Dinge:
- Wählen Sie “Attributierter Text”
- Wählen Sie im Popup “Zeilenumbruch” “Wortumbruch”
Beantwortet von – Jessecurry
Antwort geprüft von – Gilberto Lyons (FixError Admin)