如何弹出半透明UIViewController

本文介绍了如何在iOS应用中实现一个半透明的视图控制器。通过调整背景颜色的透明度,并将模态展示样式设置为OverCurrentContext,可以在显示新视图控制器时保持背景的半透明效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值