[UIView removeFromSuperview] также рекурсивно удаляет дочерние представления? - PullRequest
4 голосов
/ 25 ноября 2011

У меня есть иерархия представлений, которую мне нужно полностью удалить.Можно ли просто вызвать removeFromSuperview в родительском представлении верхнего уровня или мне нужно рекурсивно посещать каждый дочерний узел и удалять его по отдельности?

Редактировать : просто чтобы уточнить, я понимаюудаление родителя физически удаляет детей из поля зрения, но также ли это соответствующим образом уменьшает их повторные подсчеты?

Ответы [ 4 ]

4 голосов
/ 25 ноября 2011

Все подпредставления принадлежат представлению; поэтому, когда вы удаляете представление из его суперпредставления - оно удаляется со всеми его подпредставлениями.

2 голосов
/ 25 ноября 2011

Нет, удаление представления ничего не делает с его дочерними представлениями (но, конечно, они больше не будут отрисовываться, поскольку их больше нет в иерархии представлений).

Конечно, если вы удалите представление и у вас нет других сильных ссылок на него, оно может быть отменено в какой-то момент в будущем (хотя вам не следует об этом беспокоиться или предполагать, что других ссылок нет). Если и , если , он освобожден, это удалит его дочерние представления и освободит их.

2 голосов
/ 25 ноября 2011

Да.Вы можете думать о представлениях как о древовидной структуре.Поэтому, если вы скажете, что представление будет удалено из суперпредставления, вся структура будет удалена.

Например: UIButton - это фактически представление, которое содержит UILabel, в котором отображается заголовоккнопка.Таким образом, вы можете сделать это [myUIButton removeFromSuperview];, что удалит кнопку и ее собственную иерархию представлений (включая кнопку, содержащую UILabel).

Примечание : Если вы хотите только скрыть / и показатьпредставление, вы также можете установить его свойство hidden равным YES или NO вместо удаления представления из иерархии представлений.Таким образом, снова легко отобразить вид.

0 голосов
/ 25 ноября 2011

Вы можете сделать это сверху родительского вида.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...