Aus der UIStackView-Klassenreferenz
In removeArrangedSubview:
Um zu verhindern, dass die Ansicht nach dem Aufrufen der Methode removeArrangedSubview: des Stapels auf dem Bildschirm angezeigt wird, entfernen Sie die Ansicht explizit aus dem Array subviews, indem Sie die Methode removeFromSuperview der Ansicht aufrufen.
In arrangierter Unteransicht:
Immer wenn die removeFromSuperview-Methode einer angeordneten Ansicht aufgerufen wird, entfernt die Stapelansicht die Ansicht aus ihrem arrangierten Subview-Array
Von diesen scheint es, dass das Aufrufen von removeFromSuperview ausreicht, um eine Unteransicht zu entfernen, und ich habe sie ohne Probleme so verwendet. Ich habe das Verhalten auch bestätigt, indem ich die Anzahl der arrangierten Subviews-Arrays protokolliert habe, wenn removeFromSuperview aufgerufen wird.
Viele Tutorials und Kommentare hier zu S / O sagen jedoch, beide anzurufen. Gibt es einen Grund dafür? Oder machen die Leute das einfach, weil es in der Dokumentation steht?
removeArrangedSubview
ohne zu wissen , dass ich auch anrufen sollteremoveFromSuperview
, und es hat zwar die Sicht geklärt,arrangedSubviews
aber die Sicht hat immer nochsubviews
alle Arten von verwirrendem Bruch verursacht. Durch Hinzufügen desremoveFromSuperview
Anrufs (sobald ich diese Frage gesehen habe!) Wurde das Problem behoben.