宽窄优行-由【嘉易行】项目成品而来
younger_times
2023-07-05 0d8f5fc8a516bfd07e425909e4a4432600572ee7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
//
//  YYPopupView.swift
//  OKProject
//
//  Created by alvin_y on 2020/5/28.
//  Copyright © 2020 yangwang. All rights reserved.
//
 
import UIKit
import RxCocoa
import RxSwift
 
// 提示框
func alert(popup: PopupType,title: String?,text: String,hiddenCloseButton: Bool = false,submitTitle: String?,cancelTitle: String? ,submitClick: @escaping () -> Void,cancelClick: @escaping () -> Void) {
    let view = YYPopupView.instance(type: popup)
    view.label_title.text = title ?? "提示"
    view.label_content.text = text
    view.button_cancel.setTitle(cancelTitle ?? "取消", for: .normal)
    view.button_submit.setTitle(submitTitle ?? "确定", for: .normal)
    view.button_close.isHidden = hiddenCloseButton
    view.pressSubmitBlock = submitClick
    view.pressCancelBlock = cancelClick
    app.window?.addSubview(view)
    view.show()
}
 
/// 弹出类型
enum PopupType {
    /// 确定取消
    case double
    /// 确定
    case single
}
 
 
typealias PressSubmitBlock = () -> Void
typealias PressCancelBlock = () -> Void
 
/// 弹窗
class YYPopupView: YYView {
 
    /// 关闭按钮
    @IBOutlet weak var button_close: YYButton!
    
    /// view容器
    @IBOutlet weak var view_container: YYView!
    
    /// 标题
    @IBOutlet weak var label_title: UILabel!
    
    /// 内容
    @IBOutlet weak var label_content: UILabel!
    
    /// 取消按钮
    @IBOutlet weak var button_cancel: YYButton!
    
    /// 提交按钮
    @IBOutlet weak var button_submit: YYButton!
    
    
    /// 按下提交
    var pressSubmitBlock: PressSubmitBlock?
    
    /// 按下取消
    var pressCancelBlock: PressCancelBlock?
    
    let disposeBag = DisposeBag()
    
    class func instance(type: PopupType) -> YYPopupView {
        let v = UINib(nibName: "YYPopupView", bundle: nil).instantiate(withOwner: self, options: nil).first as! YYPopupView
        v.frame = UIScreen.main.bounds
        v.alpha = 0
        switch type {
        case .single:
            v.button_cancel.isHidden = true
            break
        case .double:
            break
        }
        v.bindRx()
        return v
    }
    
    
    //MARK: - Rx
    func bindRx() {
        button_submit.rx.tap.subscribe(onNext: {[unowned self] (_) in
            self.removeFromSuperview()
            self.pressSubmitBlock?()
        }).disposed(by: disposeBag)
        
        button_cancel.rx.tap.subscribe(onNext: {[unowned self] (_) in
            self.removeFromSuperview()
            self.pressCancelBlock?()
        }).disposed(by: disposeBag)
        
        button_close.rx.tap.subscribe(onNext: {[unowned self] (_) in
            self.removeFromSuperview()
        }).disposed(by: disposeBag)
    }
    
    /// 显示
    func show()  {
        self.alpha = 0
        UIView.animate(withDuration: 0.2) {
            self.alpha = 1
        }
    }
 
}