2016-04-27 2 views
2

Ich habe ein Label, das sich in einer benutzerdefinierten uitableview-Zelle befindet. Ich verwende das automatische Layout, um das Etikett zu positionieren. Meine Frage ist, wie kann man die Höhe des Labels auf Null setzen, wenn es keinen Text hat. Oder wie man die Labelhöhe 0 anlegt. Das Projekt unterstützt ios 8, so dass die Verwendung von Stackview nicht in Frage kommt. Das Etikett ist auch expansive ich kann keine konstante Höhe constraint.My Layout ist unten angegeben. enter image description hereEinstellen der Höhe des UIlabels

+2

einfach entfernen die height constraint und numberOfLines sollten 0 sein, also sollte nur top/leading/trailing constraint vorhanden sein. – Buntylm

+0

Es gibt keine Höhenbeschränkung und die Anzahl der Zeilen ist Null. Tatsächlich berechnet das Etikett seine Größe aus seinem Inhalt. Wenn der Text jedoch auf Null eingestellt ist, wird der Platz für ein einreihiges Etikett benötigt. –

+0

Wenn es nur 3 Constraint gibt, wie zB top/leading/trailing, wird es funktionieren. Double check Haben Sie bottom constraint hinzugefügt? – Buntylm

Antwort

4

Sie können die Set Etikettenhöhe Einschränkung> = 0 Label wird es aktualisieren Größe auf den Inhalt, und wenn Text fehlt Höhe 0.

enter image description here

0

In tableviewcell geben Einschränkungen Höhe sein wird außer UILabel welches du verstecken musst.Ändere deine Tableviewcell height es funktioniert.

enter image description here

Zum Beispiel Ihre UILabel Höhe ist '30' und tableviewcell Höhe ist 130.You 130-30 = 100 in Zellhöhe geben kann.

//only sample code 
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
if indexPath.row == 0 
    return 130 
else 
    return 100 

}

0

Eine andere Lösung ist möglich, dass, setzen Höhenbeschränkung und nehmen outlet davon und legen Sie es constant auf Null, wenn Text null ist.

Nur Strg + ziehen von Höhe Einschränkung zu Klasse, um Ausgang zu Constraint zu verbinden.

Dann können Sie die Höhe programmatisch ändern, wenn Sie sie benötigen, indem Sie ihre Konstante ändern.

zum Beispiel

@IBOutlet weak var labelHeightConstraint: NSLayoutConstraint! 

und konstant ändern wie,

self.labelHeightConstraint.constant = 0 

Hope this :)

0

ersten Satz Höhe Constraint zu Label helfen. Strg + Ziehen Sie die Höhe Constraint in die Klasse, um Outlet mit Constraint zu verbinden. d. h.

@IBOutlet schwach var LabelHeightConstraint: NSLayoutConstraint!

und in der Implementierung die Höhenbeschränkung von Label auf Null setzen. Wie unten gezeigt ....

self.LabelHeightConstraint.constant = 0; 
if(check the label contains data) 
{ 
    self.LabelHeightConstraint.constant = 20; 
} 
else 
{ 
    self.LabelHeightConstraint.constant = 0; 
} 

Diese Logik wird sicher funktionieren ......

+0

Dieses Etikett ist expansive .. so, um dieses Ding arbeiten zu lassen Ill brauchen eine Möglichkeit, die Größe des Etiketts –

+0

dynamisch zu berechnen @Martin. Um Label Expansive setzen Width Constraint zu Label dh self.LabelWidthConstraint.constant = 10 * count where count ist die Länge des Textes Label –

0

Stellen Sie den Text als null und bei Bedarf und stellen Sie den Inhalt umarmen Priorität hoch