transitionFromView与UIViewAnimationOptions类似,比如使用UINavigationController导航

时间:2015-09-15 14:16:58

标签: ios uiview uiviewanimation

我正在使用类似的方法描述here从一个视图控制器到另一个视图控制器的动画:

UIWindow *window = (UIWindow *)[[UIApplication sharedApplication].windows firstObject];
[UIView transitionFromView:window.rootViewController.view
                    toView:vc.view
                  duration:0.65f
                   options:UIViewAnimationOptionTransitionCrossDissolve // transition animation
                completion:^(BOOL finished){
                    window.rootViewController = vc;
                }];

查看UIViewAnimationOptions我没有找到默认动画的选项,这与UINavigationController执行相同操作时会发生。

是否可以获得相同的动画行为(向左移动视图)?怎么样?

我用this动画尝试了它:

[UIView animateWithDuration:0.65 animations:^{
    view.transform = CGAffineTransformMakeTranslation(-view.frame.size.width, 0);
} completion:^(BOOL finished) {
    // do something
}];

但在翻译到新视图时,背景是完全黑色的,而不是将其他视图控制器带入。

1 个答案:

答案 0 :(得分:0)

现在我以不同的方式做这件事。我从导航控制器及其根视图开始。然后我在堆栈上推送另一个视图控制器。在这个新视图控制器的viewDidAppear中,我正在从导航堆栈中删除第一个视图控制器。一个缺点:您可以在短时间内看到后退按钮。

我试过的动画解决方案需要动画的其他视图控制器。此外,我的视图问题非常不正确(因为edgesForExtendedLayout)。