2017-02-01 10 views
0

Das scheint so intuitiv zu sein, aber ich habe versucht, Text 45 Minuten lang vom Bildschirm verschwinden zu lassen. Hier ist meine viewDidLoad():Mehrzeilige Beschriftung mit Wortumbruch

override func viewDidLoad() { 
    super.viewDidLoad() 
    orgTitle.numberOfLines = 0 
    orgTitle.lineBreakMode = .byWordWrapping 
    orgTitle.frame.size.width = self.view.frame.size.width - 20 
    orgTitle.sizeToFit() 

    orgDesc.numberOfLines = 0 
    orgDesc.lineBreakMode = .byWordWrapping 
    orgDesc.frame.size.width = self.view.frame.size.width - 20 
    orgDesc.sizeToFit() 

    self.orgTitle.text = self.oTitle 
    self.orgDesc.text = self.desc 
    self.orgImage.image = self.image 
} 

Ich legte einen Screenshot der Ausgabe sowie die Einstellungen für mein Label. Label Settings Screenshot of issue

+2

Verwenden Sie Ihren Debugger. Schau dir die Größe des Rahmens in 'viewDidLoad' an. Es ist zu früh, um sich auf den Rahmen zu verlassen. – rmaddy

+0

Ich glaube nicht, dass es das ist. Das war meine neueste Ergänzung und es hat nichts geändert. Ich habe es seitdem entfernt und nichts hat sich geändert. –

Antwort

2

ich es viel einfacher finden Einschränkungen zu verwenden Layout festlegen, anstatt manuell den Rahmen Einstellung ...

Aber wenn aus irgendeinem Grund, Sie wollen den Rahmen des Etiketts manuell eingestellt ich würde zwei Dinge vorschlagen:

  1. wie wie @rmaddy erwähnt, viewDidLoad ist noch zu früh im view-Controller-Lebenszyklus für den Rahmen korrekt zu sein. Überschreiben Sie layoutSubviews und verschieben Sie die Rahmenanpassungen in diese Methode.

  2. Für ein UILabel mit numberOfLines, das auf 0 gesetzt ist, sollten Sie auch die Label preferredmaxlayoutwidth -Eigenschaft festlegen, um herauszufinden, wie viele Zeilen es sein muss (nicht erforderlich, wenn Einschränkungen verwendet werden).

Auch, wenn Sie bereit sind, iOS9 Ziel und darüber, UIStackView ist wirklich schöne Ergänzung zu UIKit mit dieser Art von Layout zu helfen, wo Subviews geschoben Runter vom Potenzial zunehmender Höhe von mehrzeiligen Etikett.

Hier ist ein Bildschirm Greifern eines Stapels Ansicht Zugabe von 2 UILabels zu halten, und dann Einschränkungen, dass die stackview linke, nach oben, und der rechte Rand auf den Super PIN: definiert

enter image description here

mit dem Layout in Ihr Storyboard, Ihr viewDidLoad wird viel einfacher, wenn Sie nur den tatsächlichen Inhalt für die Labels festlegen:

+0

Ich würde viel lieber nicht den Rahmen setzen, das ist genau das, was ich zuletzt versucht habe. Wie mache ich es sonst? –

+0

@EthanKlein aktualisierte Antwort mit einigen Screen-Grabs zum Hinzufügen von Stapelansicht und Einschränkungen in Ihrem Storyboard. – MathewS

+0

Ich bin fertig mit der Einrichtung meiner Stack-Ansicht, Danke für die unglaublich detaillierte Anleitung übrigens, und ich frage mich, ob ich jetzt zurückgehen und die Zeilennummer/Zeilenumbrüche meiner Labels ändern muss? –

Verwandte Themen