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,一个用于前面,一个用于后面(我正在创建一个“翻转”效果).但是,此代码只设置位置和变换而不动画.所以我认为也许变换不支持隐式动画,所以我把它拿出来并尝试设置位置,但这也没有动画(我知道这个位置支持隐式动画).
我做错了什么或CAtransformLayer不支持隐式动画?文档没有说它不支持它,所以我假设它.
编辑:这适用于Mac OS X,而不适用于iOS
解决方法@H_419_22@ 我最后只使用了明确的动画,但DavID Duncan的答案 here似乎是朝着正确的方向迈出的一步,对于遇到这个问题的其他人来说. 总结以上是内存溢出为你收集整理的objective-c – CATransformLayer不支持隐式动画?全部内容,希望文章能够帮你解决objective-c – CATransformLayer不支持隐式动画?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)