ios - CATransition 动画在 iOS 中花费很长时间

标签 ios objective-c catransition

我添加了将一个 Controller 推送到另一个 Controller 的动画。这是我推送 View 的代码。这个动画在 iPhone 5S 中需要 2 秒,在 iPhone 5 中需要 5 秒。我无法弄清楚到底是什么问题.我想要这个动画 1 秒。这是我的代码。

 DetailVC *detailObj = [[DetailVC alloc] initWithNibName:@"DetailVC" bundle:nil];
 detailObj.dataGift = data;


        detailObj.view.transform =  CGAffineTransformScale(CGAffineTransformIdentity, 2.0, 2.0);
        [UIView animateWithDuration:1.0
                         animations:^{
                             CATransition* transition = [CATransition animation];
                             transition.duration = 0.75;
                             transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
                             transition.type = kCATransitionFade;
                             [self.navigationController.view.layer addAnimation:transition forKey:nil];
                            [self.navigationController pushViewController:detailObj animated:false];

                             detailObj.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, 1.0);
                         } completion:^(BOOL finished) {

                         }];
      });

最佳答案

你在动画 block 中执行动画所以你的持续时间增加了

将您的代码替换为

 DetailVC *detailObj = [[DetailVC alloc] initWithNibName:@"DetailVC" bundle:nil];
 detailObj.dataGift = data;
 detailObj.view.transform =  CGAffineTransformScale(CGAffineTransformIdentity, 2.0, 2.0);


CATransition* transition = [CATransition animation];
transition.duration = 0.75;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
transition.type = kCATransitionFade;
[self.navigationController.view.layer addAnimation:transition forKey:nil];
[self.navigationController pushViewController:detailObj animated:false];

detailObj.view.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, 1.0);

并确保在主队列中执行该操作

希望对你有帮助

关于ios - CATransition 动画在 iOS 中花费很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49376767/

相关文章:

ios - 无法弹出 viewController

iOS:具有多个动态部分 objective-c 的 uitableview

javascript - iOS 9.3 禁用 iPhone 后退按钮上的后退缓存

iOS N 如何获取所有 User-Agent 字符串

objective-c - 为什么这些浮点计算返回不同的值?

ios - 插入新行后如何停止 UITableView 滚动到顶部?

ios - 在 iOS 中创建 'flow layout' 类型布局的最佳/最简单方法是什么

ios - 无法在 iOS 10 上使用 OpenCV 3.1 使用 VideoWriter 创建文件

ios - 动态创建的 View 的按钮没有响应

ios - 两个 View 之间的转换适用于 iOS8,但不适用于 iOS9