【发布时间】:2018-03-20 05:14:57
【问题描述】:
我添加了动画来将一个控制器推送到另一个控制器。这是我的代码来推送视图。这个动画在 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) {
}];
});
【问题讨论】:
-
你有一个块
[UIView animateWithDuration:1.0和里面的CATransition占用 0.75 这应该是这个原因 -
@PrashantTukadiya 你能提供完整的代码吗?如果它有效,我可以投票
-
从
animateWithDuration:正文中删除转换代码。这里不需要两个动画。
标签: ios objective-c catransition