2013-03-12 127 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