//
|
// 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
|
}
|
}
|
|
}
|