2009-07-17 10 views
9

Apple mówi:Jak poprawnie usunąćFromSuperview?

removeFromSuperview odłącza odbiornik od jej SuperView i jego oknie i usuwa go z łańcucha reagował.

  • (void) removeFromSuperview

Nigdy wywołać tę metodę podczas wyświetlania.

Tak więc, gdy chcę pozbyć się widoku, byłem przyzwyczajony do tego, by po prostu go oderwać od tego super-widoku. Dlaczego nie powinieneś tego nigdy inwokować, gdy jest to widoczne? Więc muszę ustawić to na hidden = YES zanim to zrobię?

Odpowiedz

17

Specyfikacja określa "podczas wyświetlania" nie ", gdy jest na wyświetlaczu". Dlatego nigdy nie należy na przykład wywoływać removeFromSuperview w widoku drawRect.

removeFromSuperview zwalnia widok i może go zwolnić. Widok nadrzędny podczas próby wyświetlenia widoku może nie oczekiwać, że zostanie zwolniony i spowoduje uszkodzony dostęp.