我在我的应用程序代理中设置self.window.rootViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
,以便我可以呈现视图控制器并使视图透明(请参阅此SO question)。
这很好用,唯一的一点是我在呈现视图控制器时无法动画。有没有人得到这个工作?如果没有,我还有其他选择吗?
我所呈现的视图控制器是一个“演练”,由UIScrollView
和UIPageControl
组成,它应该“悬停”在界面上,以便您可以稍微看到它的背景边缘。
答案 0 :(得分:9)
我最终这样做了:
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;
答案 1 :(得分:0)
您可以使用基本视图控制器中存在的包含视图。而不是呈现模态,为包容视图的定位设置动画,以模拟模态演示。
例如......
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);
}];
我希望这会有所帮助。