2017-12-27 6 views
0

Ich habe drei UILabels übereinander, aber ich möchte das zweite Etikett ausblenden und das dritte Etikett höher verschieben, um den gleichen Platz wie das ursprüngliche zweite Etikett zu nehmen. Im Moment verbirgt mein Code das zweite Label und ich habe die Einschränkung auf 0 gesetzt, aber die Beschränkungen für das automatische Layout bleiben gleich, so dass immer noch ein großer Abstand zwischen dem ersten und dem dritten Label besteht.Entfernen von Leerzeichen nach dem Ausblenden von Beschriftungen mit Autolayout

Ich habe andere Fragen gesehen UIViews Adressierung, aber keine über UILabels und sie nicht darüber diskutieren, wie die ursprünglichen automatischen Layout Einschränkungen können

secondLabel.isHidden = true 
secondLabelHeightConstraint.constant = 0 
+0

Versuchen UIStackView –

+0

Sorry, hätte klarer sein sollen. Das dritte Label hat ein ImageView neben ihm, also ist es möglich, alle drei Labels UND die Bildansicht zu stackern? –

+0

Erstens ist ein UILabel eine Unterklasse von UIView, also gilt alles über das Layout für sie gleichermaßen (nicht offensichtlich Textausrichtung). Zweitens, wenn das dritte Label eine UIImageView daneben hat und Sie wollen, dass sie zusammenbleiben, legen Sie sie in ihre eigene UIView (oder UIStackView), so dass sie als ein einzelnes Element in der UIStackView behandelt werden. Drittens, wenn Sie die Etiketten in eine UIStackView einfügen, müssen Sie sie nur ausblenden und keine Einschränkungen anpassen. –

Antwort

0

Sie drei Ihrer Etiketten in Stapelansicht setzen zu entfernen und dann ihre Verwendung Steckdosen können Sie es verstecken. d. h. lbl1.isHidden = true Oder, wenn Sie die Stapelansicht nicht verwenden möchten, können Sie den folgenden Link verwenden: https://github.com/snoozelag/GoneVisible Es entspricht der Methode "Androide Gone", die Sie für Ihre Etiketten beanspruchen können. Die erste Sache, die Sie tun werden, ist lbl1.isHidden = true dann lbl1.gone()

Verwandte Themen