呈现视图控制器具有透明度和动画(Presenting a view controller with

2019-08-19 07:05发布

我设置self.window.rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext; 在我的应用程序的代理,这样我可以呈现一个视图控制器和具有图是透明的(见本SO 问题 )。

这个伟大的工程,只有一句话是,我无法给出视图控制器时动画。 有没有人得到这个工作? 如果不是这样,我有什么其他选择?

我提出的视图控制器是一个“演练”,它由一个的UIScrollViewUIPageControl是应该“悬停”在界面上,所以你可以在边缘略微看到它的背景。

Answer 1:

我落得这样做的:

AppDelegate *appDelegate = [AppDelegate sharedAppDelegate];

// Set the root VC modal presentation style
appDelegate.window.rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext;

WalkthroughViewController *walkthroughVC = [[WalkthroughViewController alloc] initWithNibName:nil bundle:nil];

[self presentViewController:walkthroughVC animated:NO completion:nil];

// Manually animate the view
walkthroughVC.view.alpha = 0;
[UIView animateWithDuration:0.5 animations:^{
       walkthroughVC.view.alpha = 1;
}];

// Reset root VC modal presentation style 
appDelegate.window.rootViewController.modalPresentationStyle = UIModalPresentationFullScreen;


Answer 2:

你可以使用存在于基本视图控制器遏制视图。 相反,呈现模态的,动画遏制视图的定位了模拟模式的介绍。

例如...

TransparentViewController *viewController = [[TransparentViewController alloc] init];
viewController.view.frame = CGRectMake(0, 480, 320, 480);
self.containmnetView = viewController.view;

为了呈现这样做:

[UIView animateWithDuration:0.5f animations:^{
    self.containmentView.frame = CGRectMake(0, 0, 320, 480);
}];

我希望这有帮助。



文章来源: Presenting a view controller with transparency and animation