Można to osiągnąć łatwo za pomocą wiązań autoLayout.
Załóżmy, że masz trzy widoki tak:
+-----+
| A |
+-----+
+-----+
| B |
+-----+
+-----+
| C |
+-----+
i chcesz mieć widok B zniknie w niektórych przypadkach.
Konfigurowanie ograniczeń następująco (Są to tylko przykładowe wartości):
B top space to A: 4
C top space to B: 4
B height: 20
Następnie utwórz wylot NSLayoutConstraint w kodzie na wysokości B.. Zrób to, przeciągając i upuszczając ograniczenie w IB.
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bHeight;
Wreszcie, aby widok zniknie, po prostu wykonaj następujące czynności:
self.bHeight = 0;
pamiętać, że jeśli robisz to na komórce tableview może być przypadki, gdzie chcesz B, aby pojawić się w niektóre komórki, ale nie w innych.
W takim przypadku konieczne będzie zresetowanie wysokości do jej "normalnej" wartości dla komórek, w których ma być widoczna.
self.bHeight = 24;
Nie możesz tego zrobić w systemie iOS zupełnie jak android, ale jeśli korzystasz z UIStackView, możesz – Fonix
używać UIStackView jego pracy? @Fonix –
jeśli masz jakikolwiek kod referencyjny odnośnie tego, proszę komentarz –