为了更好的显示效果,想要弹出一个半透明UIViewController,刚开始以为只要把目标ViewController的背景设成半透明就行了,哪知动画结束后,背景就变黑了。
百度了一下,还是可以实现的。
首先,动画结束后,背景变黑是因为IOS在动画结束后,把不需要显示的ViewController给删除掉了,动画结束后显示的黑色是Window的的背景色。
要实现背景半透明,有两种方法,
一种通过代码来实现:
@IBAction func PopupAlphaWindow()
{
let sb = UIStoryboard(name: "Main", bundle: nibBundle)
let menuVC = sb.instantiateViewControllerWithIdentifier("MenuViewController") as! MenuViewController
menuVC.view.backgroundColor = UIColor(red: 180, green: 180, blue: 180, alpha: 0.5)
menuVC.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
self.presentViewController(menuVC, animated: true, completion: nil)
}需要注意的是,要把想要弹出的UIViewController的modalPresentationStyle给设置为UIModalPresentationStyle.OverCurrentContext
第二种,完全在storyboard中设置。
1.设置跳转为Modal
2.设置presentation为Over Current Context
3.设置目标View的背景色透明
4.显示效果见下:
点击按钮
that's all.
本文介绍了如何在iOS应用中实现一个半透明的视图控制器。通过调整背景颜色的透明度,并将模态展示样式设置为OverCurrentContext,可以在显示新视图控制器时保持背景的半透明效果。

3982

被折叠的 条评论
为什么被折叠?



