2017-01-31 1 views
1

Ich versuche, ein UILabel am unteren Rand meines View-Controllers verborgen zu machen und die Ansicht direkt darüber anzupassen, um das Leerzeichen zu füllen.XCode 8: Ansichten nicht anpassen, wenn UIElement ausgeblendet ist

UILabel Die an der Unterseite des View-Controller hat eine Höhe von 120 und einen Constraint der Unterseite der View-Controller von 0. Die Ansicht oben ihm eine Einschränkung auf den Boden der View-Controller von 120.

hat

Wenn ich das UILabel ausgeblendet habe und den Wert der Ansicht darüber auf den unteren Rand des View-Controllers auf 0 ändere (benannter viewBottomConstraint), verschwindet das UILabel, aber die Ansicht darüber bleibt wo es war.

Antwort

2

Anstatt die Beschriftung zu verdecken, ändern Sie einfach die Höhenbeschränkung! Sie sehen, dass das Festlegen der Eigenschaft auf "Versteckt" keine Auswirkung auf die nahegelegenen Ansichten hat, aber die Höhe auf 0 ändert und layoutIfNeeded aufruft, alle mit diesem bestimmten UILabel verbundenen Einschränkungen aktualisiert und alle Ansichten auslegt.

Sie müssen die Höhenbeschränkung auf 0 der UILabel setzen. Ziehen Sie dazu einen Ausgang der Höhenbeschränkung von Ihrem Storyboard zu Ihrem UIViewController und dann einfach:

heightConstraint.constant = 0.0 

UIView.animate(withDuration: 0.3, animations: { 

    self.view.layoutIfNeeded() 
}) 
+0

Das funktioniert gut, danke! –