如何弹出半透明UIViewController

为了更好的显示效果,想要弹出一个半透明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.

展开阅读全文

没有更多推荐了,返回首页