首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用CATransform3DRotate发布动画

用CATransform3DRotate发布动画
EN

Stack Overflow用户
提问于 2015-11-24 07:45:12
回答 1查看 332关注 0票数 5

我的代码如下所示,但是动画就会立即发生--也就是说,视图不再可见:

代码语言:javascript
复制
UIView *leftDoorView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width /2, self.view.bounds.size.height)];      
leftDoorView.backgroundColor = [UIColor greenColor];
leftDoorView.layer.anchorPoint = CGPointMake(0.0, 0.5);
[self.view addSubview:leftDoorView];

leftDoorView.center = CGPointMake(0.0, self.view.bounds.size.height/2.0); //compensate for anchor offset

CATransform3D transform = CATransform3DIdentity;
transform.m34 = -1.0f/500.0;
transform = CATransform3DRotate(transform, M_PI_2, 0, 1, 0);

[UIView animateWithDuration:1.0 animations:^{

        leftDoorView.layer.transform = transform;
 }];

不知道我做错了什么-任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-26 10:55:39

这个问题最终被证明是其他视图层的zPositions --很可能是由视图层次结构中的UITableView引起的。

设置是一个UIViewController,它在viewDidLoad中向自己的视图中添加了一个标头UIImageView和一个UITableView。然后将动画添加到其他视图之上。UITableView似乎以某种方式修改了图层的zPositions,所以只有在最终尝试了leftdoorView.layer.zPosition = 1000;并将实际的动画移动到一个单独的选择器之后,viewDidLoad才执行了0.2秒的动画显示。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33887975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档