怎么弹出一个半透明的UIViewController?
威尼斯人线上娱乐官网
威尼斯人线上娱乐官网
当前位置 : 威尼斯人线上娱乐官网 > 威尼斯人线上娱乐官网

怎么弹出一个半透明的UIViewController?

以下方法不行
UIViewController* controller = self.view.window.rootViewController;

[picker showBoard];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[controller presentViewController:picker animated:YES completion:nil];

你是想做一个弹出提示框吗? 可以使用 MBProgressHUD
效果:

颜色和内容可以自定义。
如果是要这个,我可以再把使用方法追答一下

直接从项目中拷贝过来的代码:


HomeViewController.swift

//点击的事件
@objc private func titleBtnClick{
        //创建弹出控制器
        let popVc = PopViewController
        //设置控制器的Model样式
        popVc.modalPresentationStyle = .Custom
        
        //设置转场的代理
        popVc.transitioningDelegate = self
        
        //弹出控制器
        presentViewControllerpopVc, animated: true, completion: nil
    }
    
        // MARK: - 自定义转场的代理方法
extension HomeViewController :UIViewControllerTransitioningDelegate {
    
    //改变弹出窗口的Frame
    func presentationControllerForPresentedViewControllerpresented: UIViewController, presentingViewController presenting: UIViewController, sourceViewController source: UIViewController -> UIPresentationController? {
        
        return LMSUIPresentationControllerpresentedViewController: presented, presentingViewController: presenting
    }


}

弹出的控制器:
LMSUIPresentationController.m

import UIKit

class LMSUIPresentationController: UIPresentationController {
    
    private lazy var maskView : UIView = UIView
    
    override func containerViewWillLayoutSubviews {
        super.containerViewWillLayoutSubviews
        
        //设置弹出View的尺寸
        presentedView?.frame = CGRectMake100, 55, 180, 240
        
        //添加蒙版
        setUpMask
        
    }
    
}

extension LMSUIPresentationController {
    private func setUpMask {
        
        //添加蒙版
        containerView?.insertSubviewmaskView, atIndex: 0
        
        //设置蒙版的属性
        maskView.backgroundColor = UIColorwhite: 0.7, alpha: 0.2
        maskView.frame = containerView!.bounds
        
        //添加手势
        let tapGes = UITapGestureRecognizertarget: self, action: "maskViewClick"
        maskView.addGestureRecognizertapGes
        
    }
}


extension LMSUIPresentationController {
    @objc private func maskViewClick {
        presentedViewController.dismissViewControllerAnimatedtrue, completion: nil
    }
}

PopViewController.swift

import UIKit

class PopViewController: UIViewController {

    override func viewDidLoad {
        super.viewDidLoad
        self.view.backgroundColor = UIColor.redColor
    }
}

    运行出来的效果类似于sinaWeibo首页顶部点击昵称的效果

广告位

威尼斯人线上娱乐官网