Objective c 如何不设置变换动画?

Objective c 如何不设置变换动画?,objective-c,uiview,objective-c-blocks,cgaffinetransform,Objective C,Uiview,Objective C Blocks,Cgaffinetransform,如何在移动某些帧时不设置变换动画?我有一些动画块: [UIView animateWithDuration:.2 animations:^{ self.center = [ViewController fitPointToNet:self.center]; [self.delegate repaint]; }]; 并重新绘制调用paintInView方法。此方法绘制一些图形(如线)并旋转它们。我希望动画看起来像直线

如何在移动某些帧时不设置变换动画?我有一些动画块:

        [UIView animateWithDuration:.2 animations:^{
            self.center = [ViewController fitPointToNet:self.center];
            [self.delegate repaint];
        }];
并重新绘制调用paintInView方法。此方法绘制一些图形(如线)并旋转它们。我希望动画看起来像直线移动到目标点-现在它移动和旋转

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

任何人都可以提供帮助?

您正在从动画块中调用“重新绘制”方法,因此对任何视图的可设置动画的属性所做的任何更改都将设置动画

您应该从动画的完成块调用该方法-使用
animateWithDuration:animations:completion
方法,而不是现在使用的方法


这将在动画完成后在不设置动画的情况下执行变换

您正在从动画块内调用“重新绘制”方法,因此对任何视图的可设置动画的属性所做的任何更改都将设置动画

您应该从动画的完成块调用该方法-使用
animateWithDuration:animations:completion
方法,而不是现在使用的方法


这将在动画完成后在不设置动画的情况下执行变换

这并不能解决我的问题,因为我想要动画“//一些绘图代码”。例如,paintInView从(x,y)开始绘制垂直线(在现实中绘制更复杂的图形),并将其转换为水平线。self.center=[ViewController fitPointToNet:self.center]命令将起点从(x,y)更改为(x2,y2)。所以我想设置从(x,y)到(x2,y2)移动水平线的动画。如果我把变换变成完成,我会得到动画,将垂直线从(x,y)移动到(x2,y2),移动结束后,线变换立即变成垂直。我不确定我是否理解,但如果你想为绘制的路径和图形设置动画,那么你应该看看CAShapeLayer。一般来说,你不会用动画的方法来画画。哦,太好了。我是新手,所以我试着这样做:)这并不能解决我的问题,因为我想要动画“//一些绘图代码”。例如,paintInView从(x,y)开始绘制垂直线(在现实中绘制更复杂的图形),并将其转换为水平线。self.center=[ViewController fitPointToNet:self.center]命令将起点从(x,y)更改为(x2,y2)。所以我想设置从(x,y)到(x2,y2)移动水平线的动画。如果我把变换变成完成,我会得到动画,将垂直线从(x,y)移动到(x2,y2),移动结束后,线变换立即变成垂直。我不确定我是否理解,但如果你想为绘制的路径和图形设置动画,那么你应该看看CAShapeLayer。一般来说,你不会用动画的方法来画画。哦,太好了。我是新手,所以-我试试这个:)