2012-06-09 2 views
0

ViewControllerA 안에 ViewControllerA를로드 중입니다. B. 더 큰 장면 안에 작은 애니메이션 캐릭터입니다. 그것을애니메이션 된 ViewController는 iOS 5에서 작동하지만 iOS 4에서는 작동하지 않습니다.

iOS5를에서
- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view from its nib. 
self.view.center = CGPointMake(640, 201); 
[self.view setAnchorPointAndReposition:CGPointMake(.7, .7)]; 


} 

- (void)viewDidAppear:(BOOL)animated 
{ 
[super viewDidAppear:animated]; 
[self bobble]; 
[NSTimer scheduledTimerWithTimeInterval:3. target:self selector:@selector(blinkFromTimer:) userInfo:nil repeats:YES]; 
} 

+ 그 부하 및 아이폰 OS 4.3, 잘 애니메이션을

CAKeyframeAnimation *bobble = [CAKeyframeAnimation   animationWithKeyPath:@"transform.rotation"]; 

NSArray *times = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0], 
        [NSNumber numberWithFloat:0.25], 
        [NSNumber numberWithFloat:0.5], 
        [NSNumber numberWithFloat:0.75], 
        [NSNumber numberWithFloat:1.0], 
        nil]; 

[bobble setKeyTimes:times]; 

NSArray *values = [NSArray arrayWithObjects: 
       [NSNumber numberWithFloat:degreesToRadian(0)], 
       [NSNumber numberWithFloat:degreesToRadian(5)], 
       [NSNumber numberWithFloat:degreesToRadian(0)], 
       [NSNumber numberWithFloat:degreesToRadian(-5)], 
       [NSNumber numberWithFloat:degreesToRadian(0)], 
       nil]; 

[bobble setValues:values]; 

bobble.repeatCount = HUGE_VALF; 
bobble.autoreverses = YES; 
bobble.duration = 5.0; 
bobble.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 
[self.view.layer addAnimation:bobble forKey:@"transform.rotation"]; 

그것은 자신의 viewDidLoad 및 viewDidAppear의 모습 :

내부 ViewControllerA에이 같은 회전 애니메이션이 로드되지만 애니메이션이 표시되지 않습니다.

어떤 통찰력이라도 있습니까?

답변

0

iOS 5에서 새로운 상위보기 컨트롤러 지원을 사용하지 않는 한 하나의보기 컨트롤러를 다른 호스트에 호스팅하지 않아도됩니다. iOS 5에서도보기 컨트롤러를 사용하여 작은 애니메이션 캐릭터를 관리하는 것은 심각한 과잉입니다. 전혀 적합하지 않습니다. UIView의 사용자 정의 하위 클래스를 만들고이를 사용하는 것이 더 좋습니다.

다른 iOS 5 이전 버전에서는 하나의보기 컨트롤러를 호스트 할 수 있지만, 모든 작업을 수행하는 데 부담이되며, 모든 단계에서 OS 디자인과의 싸움을 포기해야합니다. 나는 아이폰 SDK 시절에 그 전투를 일찌감치 (처음에는 알려졌 듯이) 싸웠고 포기했다. 처음부터 끝까지 악몽입니다. 나는 강력히 반대한다.

애플의 주요 소프트웨어 개발자 (애플 파트너 레벨)는 애플이 그 일을하기 위해 스토어에서 내려야한다고 위협했다.

+0

감사합니다. 저는 실제로 이런 유형의 구조를 만들지는 않았지만, 다른 누군가의 프로젝트를 물려 받았고, 이런 방식으로 설정했습니다. – Fluffhead

관련 문제