2011-01-20 109 views
0

嗨 我只是在玩一些基本的UIView動畫。 我設置的重複次數爲100,所以我可以看到它的上下遍地.. 我設定一個過渡轉動我的觀點180度iPhone UIView重複動畫問題

我可以看到我的觀點而動旋轉。然而,經過一定次數的重複.. 視圖仍然上下移動,但它不再旋轉。 我不明白爲什麼它會停止在同一個循環中旋轉?

下面是我的代碼:

- (void)viewDidLoad { 
[super viewDidLoad]; 
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI); 
Shape* shapeView = [[Shape alloc] initWithShapeName:@"test" frame:CGRectMake(100, 0, 50, 50)]; 


[self.view addSubview:shapeView]; 
[UIView beginAnimations:@"test animation" context:nil]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationRepeatCount:100]; 
shapeView.transform = trans; 
[UIView setAnimationRepeatAutoreverses:YES]; 
shapeView.frame = CGRectMake(100,300,50,50); 


[UIView commitAnimations]; 

[shapeView release]; 

}

感謝

回答

1

出現這種情況的原因是因爲你後設置animationRepeatAutoreverses 設置轉換。所以,每當形狀上升時,只會算作1次重複。旋轉方面已經將其計爲2次重複。

換句話說,向下移動和倒退的形狀是1次重複,需要2秒。現在,由於旋轉沒有設置爲自動反向,所以旋轉只需1秒鐘就可以完成1次重複。所以,當形狀恢復時,旋轉部分已經做了2次重複。這意味着旋轉將在100秒後結束,而上下動畫將在200秒後結束。

我希望我能夠解釋清楚。

+0

謝謝,我看到我現在做錯了! – y62wang 2011-01-21 00:22:24