Как удалить объект UIView с экрана? - PullRequest
1 голос
/ 11 октября 2011

Я создал пример приложения, в котором создал класс, унаследованный от класса NSObject, для определения различных атрибутов и свойств моего объекта. Теперь у меня есть подкласс UIView, а также я могу показать этот объект на экране iphone.

Теперь у меня возникает проблема, когда я хочу удалить треугольник, который я обычно называю [self removeFromSuperview];, и он удаляет вид с моего экрана.

Но это просто удаление вида с экрана, а не удаление объекта полностью.

Как я могу полностью удалить объект?

1 Ответ

2 голосов
/ 11 октября 2011

Из того, что я понял из вашего описания - как насчет:

[self removeFromSuperview];
[self release];

Это работает? В качестве альтернативы, вы должны поместить такую ​​логику в свой контроллер представления. Затем, если у вас есть ссылка на объект (скажем, myObject), то используйте:

[myObject removeFromSuperview];
[myObject release];

Удаление из супер просмотра не означает удаление этого объекта. Ваш объект может очень жить без подключения к иерархии UIView.

РЕДАКТИРОВАТЬ: (конкретизировать комментарий Питера Дьюиса)

Когда вы создаете UIView, вы можете сделать это:

MyView* view = [[MyView alloc] initWithFrame:myViewRect];
[mySuperView addChild:view];
[view release];

Это означает, что вам больше не принадлежит представление, а супер-представление. Супер вид сохраняет ваш вид, когда он добавлен как ребенок, и вы отказываетесь от него с выпуском. Позже, когда вы сделаете:

[self removeFromSuperview];

Количество сохраненных файлов уменьшится до 0, и ваш объект будет удален автоматически.

Хорошая идея, Питер!

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