如何弹出半透明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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值