2012-06-09 2 views
0

Я загружаю ViewControllerA внутри ViewController B. Это небольшой анимированный персонаж внутри более крупной сцены.Анимированный ViewController работает в iOS 5, но не iOS 4

Внутри ViewControllerA, есть вращение анимации, как:

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 выглядеть следующим образом:

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

В iOS5 + он загружает и одушевляет просто отлично, в прошивкой 4.3, его загружает, но анимации не видно.

Любое понимание?

ответ

0

Вы не должны размещать один контроллер вида внутри другого, если вы не используете новую поддержку контроллера родительского представления в iOS 5. Даже в iOS 5 использование контроллера вида для управления небольшим анимированным персонажем является серьезным излишеством и, возможно, не совсем подходит. Лучше создать пользовательский подкласс UIView и использовать его.

ВОЗМОЖНО разместить один контроллер вида в другом пред iOS 5, но на вас лежит все усилия, чтобы все работало, и вы на каждом шагу вступаете в борьбу с дизайном ОС. Я сражался в битве в начале iPhone SDK (как было известно вначале) и сдался. Это кошмар от начала до конца. Я категорически против этого.

Я знаю о крупном разработчике программного обеспечения (уровень партнера Apple), к которому Apple пригрозила снести из магазина для этого.

+0

спасибо. На самом деле я бы никогда не создал такой тип структуры, но я унаследовал чужой проект и создал его таким образом. – Fluffhead

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

  • Нет связанных вопросов^_^