Wie wird benachrichtigt, wenn ein UIView von seinem superView entfernt wird?

8

Es scheint, dass die UIView keine Methoden wie " didRemoveFromSuperview " oder " willRemoveFromSuperview " hat. Wie kann man das Ereignis anhören, wenn eine UIView aus ihrer superView entfernt wird? Ich sollte KVO verwenden? Danke im Voraus!

    
Jagie 19.06.2010, 08:41
quelle

4 Antworten

19

Dieses Thema ist ziemlich alt, aber ich habe einen Weg gefunden, es zu tun. Da Google-Suche nicht hilfreich genug war, hier ist es (aus UIViews Dokumenten)

  

Anzeigenbezogene Änderungen beobachten

     

- didAddSubview:

     

- willRemoveSubview:

     

- willMoveToSuperview:

     

- didMoveToSuperview

     

- willMoveToWindow:

     

- didMoveToWindow

    
likeToCode 01.02.2013 11:29
quelle
13

Das funktioniert (getestet auf iOS8):

%Vor%

Gemäß UIView Dokumente :

  

Die Standardimplementierung dieser Methode tut nichts. Unterklassen können sie überschreiben, um bei jedem Fensterwechsel zusätzliche Aktionen auszuführen.

     

Die Fenstereigenschaft kann nil sein ... Dies tritt auf, wenn der Empfänger gerade aus seiner Superansicht entfernt wurde oder wenn der Empfänger gerade einem Superview hinzugefügt wurde ist nicht an ein Fenster angehängt.

    
MarkWPiper 18.06.2015 22:41
quelle
4

Sie können Ihre UIView von Unterklassen ableiten und Benachrichtigungen von ihrer - (void)removeFromSuperview -Methode veröffentlichen.

    
beefon 19.06.2010 08:42
quelle
0
%Vor%     
gmojunior 11.07.2016 14:45
quelle