können Sie diese einfach mit Autolayout Einschränkungen erreichen.
Angenommen, Sie drei Ansichten wie diese haben:
+-----+
| A |
+-----+
+-----+
| B |
+-----+
+-----+
| C |
+-----+
und Sie möchten Ansicht B in einigen Fällen verschwinden.
einrichten Einschränkungen wie folgt (dies sind nur Beispielwerte):
B top space to A: 4
C top space to B: 4
B height: 20
Dann eine NSLayoutConstraint Steckdose in Ihrem Code für B Höhe erstellen. Führen Sie dazu die Einschränkung in IB durch Ziehen und Ablegen aus.
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bHeight;
schließlich zu der Ansicht verschwinden zu lassen, gerade wie folgt vor:
self.bHeight = 0;
Beachten Sie, dass, wenn Sie dies für eine Tableview Zelle tun, können Sie Fälle, wo Sie B angezeigt werden soll in einige Zellen, aber nicht in anderen.
In diesem Fall müssen Sie die Höhe auf den "normalen" Wert für die Zellen zurücksetzen, in denen sie sichtbar sein sollen.
self.bHeight = 24;
Sie können dies in iOS nicht ganz wie Android, aber wenn Sie eine UIStackView verwenden, können Sie – Fonix
Verwenden von UIStackView seine Arbeit? @ Fonix –
Wenn Sie einen Referenzcode diesbezüglich haben, bitte Kommentar –