dav*_*vid 1 iphone cocoa-touch core-animation
我有这个View类.它将子视图添加到自身,然后我想在其中一个上进行CATransform3DMakeRotation(最后一个添加了addSubiew).它位于顶部,但一旦动画开始,它就在奥得河景色之下.这是我的CATransform3DMakeRotation代码:
CABasicAnimation *topAnim = [CABasicAnimation animationWithKeyPath:@"transform"];
topAnim.duration=3.3;
topAnim.repeatCount=0;
topAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(0.0, 0, 0, 0)];
float f = DegreesToRadians(180); // -M_PI/1;
topAnim.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeRotation(f, 1,1, 0)];
//topAnim.delegate = self;
topAnim.removedOnCompletion =NO;
topAnim.fillMode = kCAFillModeForwards;
[[KuvertLasche layer] addAnimation:topAnim forKey:@"flippy"];
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?编辑:此视图位于包含大量其他视图的子视图中:
如果我将它从letterView中取出并将其放在letterView上方的self.view上,它将进入中途,然后进入其他视图.很奇怪.有什么建议?
如果我理解正确,当你开始动画时,你的视图部分会在其他视图下消失.之所以发生这种情况,是因为您正在应用的旋转是围绕X轴和Y轴之间的对角线的3-D发生的.当您的视图以3-D翻转时,其中一部分将比其他视图更低.
为了防止这种情况,您可以通过将其图层的zPosition属性设置为足够大的正值,或者通过将此视图的图层设置zPosition为较大的负值来更改其他视图的Z位置(除非我将我的标记误认为是Core Animation Z排序) .
您的视图层的一个示例是
KuvertLasche.layer.zPosition = -30.0f;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1684 次 |
| 最近记录: |