如何使用自定义转换ios7制作uiview全屏视图控制器

时间:2014-03-21 09:25:05

标签: ios iphone objective-c uiview

我想要达到的目标是:点击一些带有一些数据的小视图后,我想让它全屏显示,并可能使它成为一个新的vc。

现在我将uiview设为全屏幕并取得了巨大的成功,但这种观点的完整逻辑在于它的“父母”。

是否可以在类似的uiview中为viewcontroller设置动画(例如,类似于Android SDK中的LayoutTransitions)?

使用autolayout将我的uiview示例代码全屏显示:

            sender.view.transform = CGAffineTransformIdentity;
            [UIView animateWithDuration:0.2
                             animations:^{
                                 sender.view.frame = self.view.window.bounds;
                             } completion:^(BOOL finished) {
                                 [((CSTicketView*)sender.view) showMenu];
                             }];
            [[UIApplication sharedApplication]
             setStatusBarHidden:YES
             withAnimation:UIStatusBarAnimationFade];
            [[self navigationController] setNavigationBarHidden:YES animated:YES];

2 个答案:

答案 0 :(得分:0)

让我们将您的发件人视图移动到Window,如下所示

AppDelegate * appDelegate = (AppDelegate *) [[UIApplication sharedApplication] delegate];

[appDelegate.window addSubview:sender.view];

[UIView animateWithDuration:0.2
                             animations:^{
                                 sender.view.frame = self.view.window.bounds;
                             } completion:^(BOOL finished) {
                                 [((CSTicketView*)sender.view) showMenu];
                             }];

答案 1 :(得分:-1)

绝对可能。 您可以在iOS7中使用新的视图控制器转换模型。 我肯定会推荐一些资源来检查我的基本解释:

最终,您为要转换的视图创建了一个新的视图控制器,并且您还创建了一个符合UIViewControllerAnimatedTransitioning的NSObject子类,其中包含要在它们之间进行转换的代码。听起来很复杂,但是如果你观看我链接到的视频并阅读其他参考资料,那么它将是完全合理的。