如何在更改UIView的transform属性时禁用动画?

时间:2013-09-05 14:28:33

标签: ios objective-c animation uiview

正如苹果文件所说:'变换 指定应用于接收器的变换,相对于其边界的中心。

  

@property(非原子)CGAffineTransform转换

     

讨论原点   变换的中心属性或图层的值   anchorPoint属性如果已更改。 (使用layer属性获取   底层的Core Animation图层对象。)默认值为   CGAffineTransformIdentity。

     

可以设置对此属性的更改。使用   beginAnimations:context:要开始的类方法和   commitAnimations用于结束动画块的类方法。默认   无论中心值是什么(或者如果改变了锚点)'

我不需要动画,如何在更改UIView的转换属性时禁用动画?

2 个答案:

答案 0 :(得分:5)

您可以通过以下方式禁用隐式动画:

[CATransaction begin];
[CATransaction setDisableActions:YES];
// or if you prefer: [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
// Your code here for which to disable the implicit animations.
[CATransaction commit];

https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CATransaction_class/Introduction/Introduction.html

答案 1 :(得分:1)

它(应该)只在您更改内部的转换属性时才会生成动画。 UIView animateWithDuration:阻止 即只需不更改代码动画部分内的transform属性即可实现禁用动画。

你能发布一些你没想到的动画的代码吗?