2

使用以下方法完成一些核心动画后:

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];

    [self setAffineTransform:CGAffineTransformIdentity];

    [UIView commitAnimations];

我注意到,如果我只是简单地改变一个属性,它仍然会使用动画而不是简单地改变属性。例如setAffineTransform......这是iOS动画固有的东西吗?我的代码中是否遗漏了某些东西或某些东西一定是错的?

谢谢!

4

1 回答 1

1

setAffineTransform:是 CALayer 上的一种方法,而不是 UIView,就像你提到的不透明度一样。对这些属性的更改是隐式动画的,也就是说,设置它们会导致图层动画到新值,而不是立即切换。

隐式动画属性列表在这里。要禁用隐式动画,请将更新包装在 CATransaction 中,并禁用隐式动画,如此处所述

于 2012-07-01T11:59:56.523 回答