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