2016-03-29 8 views
0

Ich habe eine benutzerdefinierte Ansicht, in der ich einen UIImageView und einen UILabel platziere. Der Text des Labels kann beliebig groß sein und wird dynamisch gesetzt. Daher habe ich numOfLines des Labels auf 0 gesetzt.Die Höhe eines UILabels kann nicht an die Höhe des Texts angepasst werden

Zusätzlich verwende ich Autolayout. Die Bildansicht ist ein Symbol, das ich rechts neben dem Etikett platziere, und ich brauche die obere Kante des Symbols und den Text, der ausgerichtet werden soll (nicht das obere Ende des Etiketts). Ich habe versucht, mehrere Möglichkeiten, um die Polsterung zwischen dem Etikett und seinem Text innerhalb (sizeToFit, sizeThatFits) ohne Erfolg, ich brauche die Höhe des Etiketts, um genau die Höhe des Textes, um in der Lage sein, die Spitze ausrichten von Text zu entfernen der Text mit dem Symbol ... Wie konnte ich das erreichen?

+0

http://stackoverflow.com/questions/25180443/adjust-uilabel-height -jemandem eine SMS schicken – Ujjwal

Antwort

0

Wenn Sie in diesem Fall zunächst die dynamische Höhe für die Beschriftung festlegen möchten, müssen Sie die Option prefferedmaxwidth in storyboard/xib für diese Beschriftung aktivieren und dann uilabel constraints festlegen.

Sequenz Einschränkungen Label eingestellt werden: - 1. Top 2. 3. Hinter

führende Dies wird erhöhen Warnung, wenn Ihre aktuelle Etikettenhöhe als erforderlich unterschiedlich ist. Wenn dies der Fall ist, wählen Sie für dieses Label die Option "Frames aktualisieren".

jetzt untere Randbedingung einstellen.

keine Notwendigkeit, Sizetofit Methode aufzurufen. Automatische Anordnung wird Höhe berechnen für Sie

0

Sie die Höhe des Etiketts verändert, kann durch die Verwendung folgenden Code Aufklebers Höhenbeschränkung zu ändern,

CGSize size = [@"your text" boundingRectWithSize:CGSizeMake(label.bounds.size.width, 10000) options:(NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName : @"FontName"} context:nil].size; 

labelHeightConstraint = size.height;