IOS, что является противоположностью layoutSubviews

У меня есть вид, который выходит в своем собственном классе, со своим собственным XIB.

Это представление инициализируется и добавляется как подпредставление в мое представление viewController.

Когда представление инициализируется, вызывается метод layoutSubviews, где я настраиваю некоторые вещи в представлении.

НО какой метод вызывается, когда представление удаляется из суперпредставления (если есть)?

Например, для ViewController вызывается viewWill/DidDisappear. Есть ли метод, аналогичный UIView (в отличие от layoutSubviews)?

заранее спасибо

---РЕДАКТИРОВАТЬ---

Я только что нашел метод, который вызывается при добавлении и удалении subView:

- (void)willMoveToSuperview:(UIView *)newSuperview

И если newSuperview == 0, вы можете настроить удаление подпредставления.

Прав ли я или это безрассудный способ справиться с ситуацией?

1 ответ

Решение

НО какой метод вызывается, когда представление удаляется из суперпредставления (если есть)?

-removeFromSuperview называется, так что вы можете переопределить это, если вам нужно сделать некоторую домашнюю работу, когда представление удалено. Просто не забудьте позвонить superверсия тоже.

-layoutSubviews не обязательно вызывается только когда представление добавляется в суперпредставление - оно вызывается всякий раз, когда требуется макет. Например, он может быть вызван, когда меняется ориентация, или когда суперпредставление снова выкладывается, или когда изменяется рамка представления. Там на самом деле не обратное -layoutSubviews потому что ничего не нужно. (Как бы это называется? -messupSubviews?;-))

Другие вопросы по тегам