2013-03-12 64 views
1

如何在移動某個框架期間不使動畫變形?我有一些與動畫塊:如何不動畫轉換?

 [UIView animateWithDuration:.2 animations:^{ 
      self.center = [ViewController fitPointToNet:self.center]; 
      [self.delegate repaint]; 
     }]; 

和repaint調用paintInView方法。此方法繪製一些圖形(例如線)並旋轉它們。我想要動畫看起來像線移動到目標點 - 現在它移動和旋轉。

- (void)paintInView:(UIView*)view 
{ 
//some drawing code 
line.transform = CGAffineTransformMakeRotation(M_PI); 
//some drawing code 
} 

任何人都可以幫忙嗎?

回答

1

你從動畫塊中調用重繪方法 - 所以任何視圖的動畫屬性的變更,將動畫。

你應該叫從動畫完成塊方法來代替 - 使用animateWithDuration:animations:completion方法,而不是你現在正在使用的一個。

這將不進行動畫的變換,動畫完成後。

+0

它沒有解決我的問題,因爲我想動畫「//一些繪圖代碼」。例如。 paintInView從(x,y)開始繪製垂直線(實際上繪製更復雜的圖形)並將其轉換爲水平線。 self.center = [ViewController fitPointToNet:self.center]命令將開始點從(x,y)更改爲(x2,y2)。所以我想動畫從(x,y)開始移動水平線到(x2,y2)。如果我把轉變爲完成我從(X,Y)到(x2,y2)和動畫移動垂直線 - 此舉結束後 - 線轉換成垂直瞬間。 – tch 2013-03-13 11:51:04

+0

我不知道我的理解,但如果你想進行動畫繪製路徑和數字,那麼你應該看看CAShapeLayer。作爲一項規則,您不會在動畫方法中繪製。 – jrturton 2013-03-13 12:04:34

+0

哦,太好了。我是新手所以 - 我試試這:) – tch 2013-03-13 12:18:04