- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是我的动画代码:
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/
我已经阅读了文档和几个示例,但仍然无法理解何时使用 CATransformLayer。普通的 CALayer 会在 z = 0 平面上展平所有内容,但这不也是 CATransformLayer 所做的
注意:请忽略颜色、渐变和尺寸!我担心的是透视图没有按预期工作 我正在尝试实现如下输出, 但是当我运行代码时,它会给出以下输出 请看一下我的代码: CATransformLayer *baseLayer
这是我的动画代码: CGFloat zDistance = 850; CGFloat scaleFactor = BACK_COVER_WIDTH / self.transformLayer.boun
我正在尝试将包含多个 CAShapeLayer 的 CATransformLayer 渲染到 png 文件。我知道如何设置基本渲染并且确实有效。 尽管当我在 CATransformLayer 上调用
我正在尝试绘制一个 3d block ! 使用 2 层,右侧 在 3d 中看起来不错。见附图。 当我尝试重用相同的代码对左侧 进行较小的修改时!它看起来很奇怪。请参阅下面的附图, 我觉得如果我们可以改
我正在使用 Xcode 7 和 swift 2。 在我的 iPad Air,iOS 9.1 上,当键盘出现时,调试控制台会抛出一个错误 2015-10-28 13:07:35.114 Note[738
我在 xCode 7.0 中收到此警告报告 当我在项目中使用 MBProgress HUD 时会发生这种情况。如何处理这个警告? 我看到了 "changing property masksToBoun
我们似乎可以显示图层,甚至可以在 Core Animation 中为不同的图层使用不同的 zPosition -- 然而,是否真的没有简单的方法来显示具有一定厚度的东西? 例如,一片厚度为 2 毫米的
我创建了一个“TransformView”子类 UIView 以支持我在翻转动画中使用的双面 View 。这已在其他帖子中提出,例如: How to rotate a flat object arou
我是一名优秀的程序员,十分优秀!