2012-06-09 82 views
0

我加載ViewControllerA視圖控制器B.內這是一個小動畫人物,較大的場景中。動畫視圖控制器工作在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的+ IT負載和動畫就好了,在IOS 4.3,它加載但不能看到動畫。

任何見解?

回答

0

你不應該舉辦一個視圖控制器內的另一個除非您使用的iOS 5新的父視圖控制器的支持,即使在iOS 5中,使用視圖控制器來管理一個小動畫人物是嚴重的矯枉過正,而且可能根本不適合。最好創建的UIView的定製子類並使用它。

有可能主機內部的另一預iOS 5的一個視圖控制器,但責任在你做的一切工作,你風對OS設計的每一步戰鬥。我在iPhone SDK的日子早打那場戰役(因爲它是在第一個已知的),並放棄了。這從頭到尾都是一場噩夢。我強烈建議不要這樣做。

我知道主要的軟件開發商(蘋果的合作伙伴級別),誰的App蘋果威脅要取下來從商店這樣做的。

+0

謝謝。其實,我絕不會創建這種類型的結構,但我繼承別人的項目,他們有它設置了這種方式。 – Fluffhead

相關問題