Анимации принимают дополнительную память
-
28-09-2019 - |
Вопрос
Мне нужно использовать анимацию в моем приложении iPad. Когда я использую анимацию, что память увеличивается и получение исключения .. Когда я запускаю мое приложение, размер памяти - 10 МБ, как только анимация запускается, что увеличивается размер памяти до Двойное из пускового пространства (это 30 МБ). Я проверяю на распределение и утечки все идеально, но все же я получил эту проблему. Я не знаю, почему это происходит. Мой код анимации выглядит следующим образом. Пожалуйста, помогите мне.
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
if ([currentView superview])
{
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:mainView cache:YES];
[currentView removeFromSuperview];
[mainView addSubview:nextView];
}
[UIView commitAnimations];
Заранее спасибо, Сехар Битталам.
Решение
Насколько вы уверены, что анимация вызывает утечку?
Что происходит, когда вы добавляете / удалите сообщения без анимации? Утечка еще там?
Где nextView
Инициализирован / выпущен?
Что именно if ([currentView superview])
Значит проверить, потому что я думаю, что это всегда вернет правдой?
Другие советы
Я не уверен, это сам метод, который увеличивает использование памяти, но, вероятно, ваш контроллер просмотра, который загружен?
Также попробуйте добавить эти строки в своем блоке анимации, как я думаю, он поощряется (пожалуйста, поправьте меня, если я ошибаюсь) [ViewView ViewWillAppear: Да]; [CurectView ViewDiDiDAppear: Да]; [Mainview ViewWilldisappear: Да]; [Mainview ViewDidDisAppear: Да];
Также я считаю, что SetanimationTrationTransition теперь обескуражен в iOS4, чтобы, возможно, попробовать использовать + (пустоту) Переходное представление: (UIView *) Просмотр продолжительности: (NStimeInterval) Продолжительность Опции: (UiviewanimationOptions) Параметры анимации: (void (^) (void)) Анимации Завершение: (пустота (^) (Bool закончил)) завершение