56 lines
1.8 KiB
Swift
56 lines
1.8 KiB
Swift
//
|
|
// MPPositive_PresentationController.swift
|
|
// MusicPlayer
|
|
//
|
|
// Created by Mr.Zhou on 2024/5/10.
|
|
//
|
|
|
|
import UIKit
|
|
///自定义模态弹出类型
|
|
enum MPPositive_PresentModal{
|
|
///播放器弹出列表
|
|
case PlayerList
|
|
///更多选择弹出
|
|
case MoreOperations
|
|
}
|
|
class MPPositive_PresentationController: UIPresentationController {
|
|
//蒙板
|
|
fileprivate lazy var maskView: UIView = {
|
|
let corverView = UIView()
|
|
return corverView
|
|
}()
|
|
// MARK: - 系统回调(重载)
|
|
override func containerViewWillLayoutSubviews() {
|
|
super.containerViewWillLayoutSubviews()
|
|
//根据模态状态确定弹出控制器的布局
|
|
switch MPPositive_ModalType {
|
|
case .PlayerList:
|
|
presentedView?.snp.makeConstraints({ (make) in
|
|
make.left.right.bottom.equalToSuperview()
|
|
make.height.equalTo(380*width)
|
|
})
|
|
case .MoreOperations:
|
|
presentedView?.snp.makeConstraints({ (make) in
|
|
make.left.right.bottom.equalToSuperview()
|
|
make.height.equalTo(160*width+bottomPadding)
|
|
})
|
|
}
|
|
//添加蒙版
|
|
setMask()
|
|
}
|
|
// 添加蒙版
|
|
fileprivate func setMask() -> Void {
|
|
// 添加蒙版
|
|
containerView?.insertSubview(maskView, at: 0)
|
|
//设置蒙版的属性
|
|
maskView.backgroundColor = UIColor(white: 0.0, alpha: 0.8)
|
|
maskView.frame = containerView!.bounds
|
|
let tap = UITapGestureRecognizer(target: self, action: #selector(maskClick(_:)))
|
|
maskView.addGestureRecognizer(tap)
|
|
}
|
|
//蒙板点击事件
|
|
@objc fileprivate func maskClick(_ sender:UITapGestureRecognizer){
|
|
presentedViewController.dismiss(animated: true, completion: nil)
|
|
}
|
|
}
|