使用自定义动画推送视图控制器

时间:2013-02-15 01:22:42

标签: iphone objective-c pushviewcontroller

是否可以像图像一样制作自定义推送视图控制器动画?基本思路是正常推送视图,但不移动当前视图(调用pushViewController...)。

ex

2 个答案:

答案 0 :(得分:0)

当然,可以做到。我做了一个项目,我这样做:

-(void)slideInController:(RDSlideController *) next {
    next.presentingVC = self;
    next.view.frame = CGRectMake(self.view.frame.origin.x + 320, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
    [self.view.window addSubview:next.view];
    [UIView animateWithDuration:slideTime animations:^{
        next.view.frame = self.view.frame;
    } completion:^(BOOL finished) {
        self.view.window.rootViewController = next;
    }];
}

我滑入的视图控制器是RDSlideController的子类(所以我可以使用presentVC属性和其他一些东西),但这不是必需的。基本上,您只需实例化新控制器,将其视图的框架设置为屏幕右侧,将该视图添加到窗口,然后将框架设置为当前视图框架的动画。最后,切换视图控制器,以便新的视图控制器现在是窗口的根视图控制器。

答案 1 :(得分:0)

我们可以通过添加我们想要添加的子视图和动画视图来实现这一点。 当我们添加动画以将下一个视图从左边缘移动到右边缘时。反之亦然,删除视图。