objective-c - CATransformLayer 不支持隐式动画?

标签 objective-c cocoa core-animation calayer catransformlayer

这是我的动画代码:

CGFloat zDistance = 850;
CGFloat scaleFactor = BACK_COVER_WIDTH / self.transformLayer.bounds.size.width;
CATransform3D rotation = CATransform3DMakeRotation(M_PI, 0.0, 1.0, 0.0);
CATransform3D scale = CATransform3DMakeScale(scaleFactor, scaleFactor, 0.0);
CATransform3D transform = CATransform3DConcat(rotation, scale);
transform.m34 = 1.0 / -zDistance;
CGPoint location = CGPointMake(CGRectGetMidX(self.layer.frame), CGRectGetMidY(self.layer.frame));
[CATransaction begin];
[CATransaction setAnimationDuration:1.0];
self.transformLayer.transform = transform;
self.transformLayer.position = location;
[CATransaction commit];

self.transformLayer 是一个具有两个子层的 CATransformLayer,一个用于前面,一个用于后面(我正在创建一个“翻转”效果)。然而,这段代码只是设置了位置和变换而没有动画。所以我想也许 transform 不支持隐式动画,所以我把它拿出来并尝试设置位置,但这也没有动画(而且我确定 position 支持隐式动画)。

是我做错了什么还是 CATransformLayer 不支持隐式动画?该文档没有说明它不支持它,所以我假设它支持。

编辑:这是针对 Mac OS X,而不是 iOS

最佳答案

我最终只使用了显式动画,但 David Duncan 的回答 here对于遇到此问题的任何其他人来说,这似乎是朝着正确方向迈出的一步。

关于objective-c - CATransformLayer 不支持隐式动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4929894/

相关文章:

ios - 我们可以检查允许应用程序请求跟踪切换是否打开

objective-c - 禁止面向用户的文本应使用本地化字符串宏警告

objective-c - 覆盖-performSelector : in UIBarButtonItem Subclass

ios - 使用阴影平滑旋转和更改 UIView 的大小

swift - 动画简单容器 View 时的问题

iPhone URL 编码问题

iphone - 找到多个名为 'tag' 的方法

python - Snow Leopard 上的 PyObjc 和 Cocoa

objective-c - 通过 Cocoa 连接到 Sharepoint

ios - 旋转的 Spring 动画在它开始的地方结束