UIImageView startAnimating удаляет себя, когда анимация закончена? - PullRequest
0 голосов
/ 06 октября 2011

анимация с помощью UIImageview выполняет следующие шаги

  1. создать автоматически выпущенный UIImageView
  2. создать массив изображений
  3. назначить массив изображений для свойства animationImages UIImageView
  4. установить другие свойства
  5. добавить UIImageView в представление как подпредставление
  6. startAnimating

Я беспокоюсь об утечке памяти.
Будет ли освобожден imageView до тех пор, пока UIImageView является объектом автоматического освобождения?

Ответы [ 4 ]

0 голосов
/ 31 мая 2014

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

[UIImageView setAnimationDelegate: self];

[UIImageView setAnimationDidStopSelector: @selector(removeFromSuperview)];

0 голосов
/ 06 октября 2011

Вы можете быть уверены в том факте, что UIImageView не будет выпущен, пока он является частью иерархии представления.

Также, если вы выделили NSArray на шаге 2, вы должны освободить его после шага 3. В остальном все выглядит хорошо.

0 голосов
/ 06 октября 2011

Звучит так, будто вы хотите, чтобы изображение исчезло после завершения анимации.Как это не так.Это останется подпредставлением.Я не уверен, как это будет выглядеть, когда анимация будет завершена.

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

Вероятно, вы можете создать анимацию, используя [UIView animateWithDuration:animations:completion:].Дайте ему продолжительность, равную продолжительности вашего анимированного изображения.В блоке анимации ничего не делать.В блоке завершения удалите представление изображения из его суперпредставления.

Или просто выполните executeSelectorAfterDelay для вызова чего-либо, удаляющего представление.Не уверен, что лучше будет гарантировать синхронизацию с анимацией последовательности изображений.

0 голосов
/ 06 октября 2011

Вы можете попробовать это: Отладка утечек памяти

Надеюсь, это поможет ^^

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