我正在開發一個水族館應用程序。我需要在其中產生魚的動作。魚應該游泳,當到達水族館的一端時應該轉動(或翻轉)並移動到另一端,再次轉動(或翻轉)並且回到其原始位置。CATransform3DGetAffineTransform用於翻轉一個接一個地被調用的視圖不工作
fishforword motion正常工作,它也輪到(翻轉)達到其結束。但是當它到達另一端時,翻轉動畫加上進一步的動畫突然跳過。
以下是我使用的代碼.....
CGFloat originalChildXpos = fishView.frame.origin.y;
/************************************** Animation 1 **************************************************************/
[UIView animateWithDuration:15.0
delay:1.0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
fishView.frame =CGRectMake(0, fishView.frame.origin.y, fishView.frame.size.width, fishView.frame.size.height);
}completion:NULL];
/*********************************** Animation 2 ****************************************************************/
[UIView animateWithDuration:2.4
delay:3.0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
fishView.transform = CATransform3DGetAffineTransform(CATransform3DMakeRotation(M_PI, 0.0, 1.0, 0.0));
}completion:NULL];
/********************************* Animation 3 ****************************************************************/
[UIView animateWithDuration:10
delay:3.4
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
fishView.frame = CGRectMake(-aquariumView.frame.size.width, fishView.frame.origin.y, fishView.frame.size.width, fishView.frame.size.height);
}completion:NULL];
/*************************************** Animation 4 *****************************************************/
[UIView animateWithDuration:1.4
delay:13.4
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
fishView.transform = CATransform3DGetAffineTransform(CATransform3DMakeRotation(-M_PI, 0.0, 1.0, 0.0));
}completion:NULL];
/************************************* Animation 5 *******************************************/
[UIView animateWithDuration:13.8
delay:2.2
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
fishView.frame = CGRectMake(originalChildXpos, fishView.frame.origin.y, fishView.frame.size.width, fishView.frame.size.height);
}completion:NULL];
我想我在使用CATransform3DGetAffineTransform(CATransform3DMakeRotation())
功能,第二次翻蓋旋轉錯過的東西.....
任何人都可以在這裏告訴我出路,並解釋我出錯的地方
我也想知道,而使用CATransform3D
旋轉,做座標軸相對於視圖,應用變換改變或受到影響? ?
是'fishView'一個看法?你正在使用它像一個圖層。另外,框架和變換不能一起玩。你不應該像那樣使用它們(文檔中甚至會這樣說) –
是的,fishview是視圖類。 –
但使用CATransform3DMakeRotation的翻轉動畫第一次正常工作,但不是第二次。爲什麼這樣?? –