2009-09-21 2 views
2

Я хочу перевернуть мой новый ModalView с очень высокой производительностью, но в новом представлении есть много подзапросов, поэтому производительность Flip-Effect очень плохая. На самом деле я делаю это с:iPhone SDK: Оптимизация UIModalTransitionStyleFlipHorizontal

[controller setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; 
[self presentModalViewController:backSideController animated:YES]; 

Я также пробовал с

CATransition *transition = [CATransition animation]; 
transition.duration = 0.75; 
[transition setType: @"flip"]; 
[transition setSubtype:@"fromRight"]; 

transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
[transition setFillMode:@"extended"]; 

[[self.view layer] addAnimation:transition forKey:nil]; 


[self.view addSubview: backSideController.view]; 
[CATransaction commit]; 

С Core-анимацией он работает немного быстрее ... посуда есть дополнительные способы opimize этой задачи? например Добавление представления при остановке анимации и просто перелистывание скриншота до остановки анимации?

ответ

0

Попробуйте получить доступ к backsideController.view перед началом анимации. Это вызовет вызовы backsideController loadView и viewDidLoad. Я предполагаю, что это ваш успех - все, что загружает &, вызывает анимацию заикаться.

Вы ничего сверхъестественного не нужно, вы можете сделать что-то вроде:

if (backsideController.view == nil) 
    NSLog(@"Where's my view?!"); 

перед вашим другим кодом, выше.

Я не верю, что наличие много-много подзапросов вызывает проблемы с производительностью на флип; Я уверен (не глядя на ваш код или проверяя инструменты, которые вы должны делать!), Что проблема заключается в времени, которое требуется для загрузки и распределения компонентов представления.

Кроме того, я бы придерживался presentModalViewController, если он делает то, что вы хотите. Наличие всего этого дополнительного кода в вашем втором примере - если только это не требуется для функциональности - это просто головная боль.

Смежные вопросы