可能重复:
iPhone CATransition adds a fade to the start and end of any animation?
我正在尝试复制[UIViewController presentModalViewController:animated:]执行的“从底部向上滑动”动画,但没有调用它,因为我不想要模态视图。
以下核心动画代码非常接近但似乎在更改视图的透明度值。在动画开始时,您可以部分地透过视图向上滑动。在动画的中间/结尾,我们滑过的视图是完全透明的,所以我们可以看到它背后。我想在这个动画中保持完全不透明。
有关如何停止透明度的任何想法在此代码中更改或以其他方式获取我正在寻找的“向上滑动动画”而不需要模态视图?
UIViewController *nextViewController = [[UIViewController alloc] autorelease];
nextViewController.view.backgroundColor = [UIColor redColor];
CATransition *animation = [CATransition animation];
animation.duration = 3.5;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
animation.type = kCATransitionPush;
animation.subtype = kCATransitionFromTop;
[self.navigationController pushViewController:nextViewController animated:NO];
[self.navigationController.view.layer addAnimation:animation forKey:nil];
答案 0 :(得分:2)
最简单的方法是简单地使用UIView beginAnimations / commitAnimations块。您可以通过查看文档来调整持续时间和曲线。
{
// Adjust for orientation as necessary.
view.frame = CGRectMake(0,
-480,
320,
480);
[UIView beginAnimations:nil context:nil];
view.frame = CGRectMake(view.frame.origin.x,
0,
view.frame.size.width,
view.frame.size.height);
[UIView commitAnimations];
}
文档:
答案 1 :(得分:0)
而不是CATransition,您可以尝试使用CABasicAnimation来动画从屏幕顶部到所需位置的位置。