所以我想在看似3D的东西中旋转我的UIView。我做了一个快速搜索,互联网上说:使用核心动画。所以我看了一眼,然后我想出了这个代码,让我的视图旋转
CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.x"];
animation.fromValue = @(0);
animation.toValue = @(4 * M_PI);
animation.repeatCount = INFINITY;
animation.duration = 5.0;
[self.layer addAnimation:animation forKey:@"rotation"];
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -2000;
self.layer.transform = transform;
self.layer.masksToBounds = NO;
实际视图旋转正常,但它会切断视图的一半。下面是我在photoshop中制作的快速图片,以显示我的意思
我现在已经进行了数小时的搜索,我似乎无法弄清楚是什么导致了这种情况。任何帮助或输入将不胜感激。感谢。
编辑:以下是我创建视图的方式:
UIView* test = [[UIView alloc] initWithFrame:CGRectMake(200, 200, 100, 100)];
test.backgroundColor = [UIColor redColor];
[self.view addSubview:test];
在界面生成器中创建的视图上尝试后,它工作正常,但我需要以编程方式进行这些操作。
答案 0 :(得分:7)
我有同样的问题,但最终在这里找到了解决方案: http://iphonedevsdk.com/forum/iphone-sdk-development/35864-catransform3d-cabasicanimation-problem.html
要阻止彼此重叠的图层,您可以更改zPosition。
在您的情况下,类似于self.layer.zPosition = 100.0f;
希望我能帮助你:)。