2017-09-07 2 views
1

Ich habe UIView, die ein Kind UILabel hat. Ich habe den folgenden SO-Post über das Ausrichten des Textes an den Anfang der Ansicht gelesen: Vertically align text to top within a UILabel. Ich sehe den Ansatz hier in verschiedenen Methoden, aber ich habe einen speziellen Fall: Ich möchte nicht die UILabel in meinem Fall über die untere Grenze der UIView gehen. Dies scheint jedoch die automatische Größenanpassung des UILabel zu verhindern, da es nun in allen vier Richtungen (Trailing, Leading, Top und Bottom) fixiert ist. Ist das unmöglich zu erreichen?Text in uilabel an der Oberseite des Etiketts ausrichten, wenn die obere untere Ende und führende

Die in der obigen SO-Post präsentierte Lösung schlug Trailing Leading and Top mit der Idee vor, dass sie die vertikale Dimension basierend auf der instrinsischen Größe skalieren würde.

Antwort

2

Alles, was Sie brauchen, ist eine Einschränkung für den Bodenraum zu Superview (die UIView in diesem Fall) größer als oder gleich 0 Anzahl der Zeilen für das Label ist 0.


enter image description here

enter image description here



Verwenden Sie Ihre Frage als Text:

@IBOutlet weak var text: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     text.text = "I have UIView which has a child UILabel. I have read the following SO post about aligning the text to the top of 
the view : Vertically align text to top within a UILabel. I see the 
approach discussed here in different methodologies" 
    } 

Sie erhalten:

enter image description here

Der Text endet, wenn das Etikett den Boden des UIView trifft.

+0

Ich denke, sollte unten Raum sein '> = 8' – Krunal

+0

@Krunal OP möchte, kann Text nicht über die UIView gehen, so gibt es keinen Grund für 8 – Shades

+0

Liebe, deine Antwort Korrektur ist, wird es nicht brauchen Siehe Anforderung des OP. Allgemeine Sicht, Sie legen Padding von 8 Punkten von oben, links (vorne) und rechts (Trailing). Wenn Sie den unteren Abstand auf>> 0 setzen, wird Ihr Text möglicherweise die untere Zeile der Ansicht berühren. Aber wenn Sie den unteren Abstand auf> = 8 setzen, wird Ihr Text auch 8 Punkte des Platzes mit der unteren Sichtlinie setzen. – Krunal

Verwandte Themen