2010-10-13 23 views
0

我正試圖從書上得到下面的代碼來工作。它動畫一個UIImageView層叫雞:我從CALerer的這個隱式動畫代碼中遺漏了什麼?

[CATransaction setValue:kCAMediaTimingFunctionEaseInEaseOut forKey:kCATransactionAnimationTimingFunction]; 
[CATransaction setValue:[NSNumber numberWithFloat:1.0] forKey:kCATransactionAnimationDuration]; 
theChicken.position = CGPointMake(225, 144); 

的問題是,這個代碼不動畫。它只是將雞移動到225,144而沒有動畫(它只是傳送像魔術一樣)。任何人都可以幫助我糾正代碼,所以它的作品?

由於提前,

馬丁

回答

1

,如果你把它包在發生什麼:

[CATransaction begin]; 

[CATransaction setValue:kCAMediaTimingFunctionEaseInEaseOut forKey:kCATransactionAnimationTimingFunction]; 
[CATransaction setAnimationDuration:1.0]; 
theChicken.position = CGPointMake(225, 144); 

[CATransaction commit]; 

如果它仍然不工作,它可能是與層的委託做的。這個圖層是一個子圖層嗎?我認爲委託人在根層上設置爲零,這會產生這種影響。

您可以使用一個UIView動畫代替:

[UIView beginAnimations:@"anim1" context:nil]; 
[UIView setAnimationDuration:1.0]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 

theChicken.position = CGPointMake(225, 144); 

[UIView commitAnimations]; 
+0

它仍然扭曲那邊像魔術:( – GuybrushThreepwood 2010-10-13 21:13:40

+0

我認爲這是一個子層這是我與界面生成器創建的UIImage的看法? – GuybrushThreepwood 2010-10-13 21:14:08

+0

然後它只是意見的主層,你應該使用UIView動畫,而不是我上面編輯的 – Ben 2010-10-13 21:15:56