2009-09-21 12 views
2

내 새 ModalView를 매우 높은 성능으로 반전하고 싶지만 새로운보기에 많은 서브뷰가있어 플립 효과의 성능이 매우 좋지 않습니다. 사실 내가 그것을 함께 할 :iPhone SDK : 최적화 UIModalTransitionStyleFlipHorizontal

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

나는 또한이 작업을 opimize하기가 조금 더 빨리 ... 도자기 더 방법을 작동하는 코어 애니메이션으로

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]; 

와 그것을 시도? 예 : 애니메이션이 멈출 때까지 뷰를 추가하고 애니메이션이 멈출 때까지 스크린 샷을 뒤집을 수 있습니까?

답변

0

애니메이션을 시작하기 전에 backsideController.view에 액세스 해보십시오. 그러면 backsideController의 loadView 및 viewDidLoad가 호출됩니다. 나는 이것이 당신의 퍼포먼스에 맞았다 고 짐작한다 - 모든로드가 &로 할당되면 애니메이션이 더듬 거리게된다. 위의 다른 코드 앞에

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

:

당신은 공상 아무것도 필요하지 않습니다, 당신은 뭔가를 할 수 있습니다.

많은 수의 하위 뷰를 사용하면 플립에서 성능 문제가 발생한다고 생각하지 않습니다. 나는 당신의 코드를 보거나 인스트루먼트를 점검하지 않고, 뷰 컴포넌트를로드하고 할당하는데 걸리는 시간이라는 것을 확신한다.

또한 내가 원하는대로하는 경우 presentModalViewController을 붙일 것입니다. 기능에 필요한 것이 아닌 한 두 번째 예제에있는 모든 추가 코드를 유지하는 것은 유지 관리에 어려움을 겪을뿐입니다.