Анимации, требующие дополнительной памяти - PullRequest
0 голосов
/ 14 августа 2010

Мне нужно использовать анимацию в своем приложении для iPad. Когда я использую анимацию, память увеличивается и получает исключение. объем памяти вдвое больше места запуска (это 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];

Спасибо заранее, Сехар Беталам.

Ответы [ 2 ]

0 голосов
/ 14 августа 2010

Как вы уверены, что анимация вызывает утечку?

Что происходит, когда вы добавляете / удаляете подпредставления без анимации?Утечка все еще там?

Где nextView инициализирован / выпущен?

Что именно нужно проверить if ([currentView superview]), потому что я думаю, что он всегда вернет True?

0 голосов
/ 14 августа 2010

Я не уверен, что сам метод увеличивает использование памяти, но, скорее всего, загружается ваш контроллер представления?

Также попробуйте добавить эти строки в свой анимационный блок, так как я думаю, что это поощряется (пожалуйста, исправьте меня, если я ошибаюсь) [currentView viewWillAppear: YES]; [currentView viewDidAppear: YES]; [mainView viewWillDisappear: YES]; [mainView viewDidDisappear: YES];

Также я считаю, что setAnimationTransition теперь не рекомендуется в IOS4, поэтому, возможно, попробуйте использовать + (void) transitionWithView: (UIView *) продолжительность просмотра: (NSTimeInterval) параметры продолжительности: (UIViewAnimationOptions) параметры анимации: (void (^) (void)) завершение анимации: (void (^) (BOOL закончено)) завершение

...