//
|
// ChooseNumberView.swift
|
// WanPai
|
//
|
// Created by 无故事王国 on 2023/6/29.
|
//
|
|
import UIKit
|
import QMUIKit
|
import JQTools
|
import RxRelay
|
import RxSwift
|
import RxDataSources
|
|
class ChooseNumberView: UIView,JQNibView{
|
|
@IBOutlet weak var view_container: UIView!
|
@IBOutlet weak var view_bottomContainer: NSLayoutConstraint!
|
private var clouse:((Int)->Void)!
|
@IBOutlet weak var tf_number: UITextField!
|
private var numberValue = BehaviorRelay(value: "1")
|
private var disposeBag:DisposeBag!
|
private var maxNumber:Int!
|
|
override func awakeFromNib() {
|
super.awakeFromNib()
|
disposeBag = DisposeBag()
|
view_bottomContainer.constant = -(JQ_ScreenW * 0.63)
|
tf_number.isEnabled = false
|
alpha = 0
|
layoutIfNeeded()
|
numberValue.bind(to: tf_number.rx.text).disposed(by: disposeBag)
|
}
|
|
static func show(maxNumber:Int,clouse:@escaping (Int)->Void){
|
let chooseNumberView = ChooseNumberView.jq_loadNibView()
|
chooseNumberView.frame = sceneDelegate?.window?.frame ?? .zero
|
sceneDelegate?.window?.addSubview(chooseNumberView)
|
chooseNumberView.view_bottomContainer.constant = 0
|
chooseNumberView.maxNumber = maxNumber
|
chooseNumberView.clouse = clouse
|
UIView.animate(withDuration: 0.4) {
|
chooseNumberView.alpha = 1
|
chooseNumberView.layoutIfNeeded()
|
}
|
}
|
|
@IBAction func addAction(_ sender: UIButton) {
|
var num = Int(numberValue.value) ?? 1
|
guard num < maxNumber else {return }
|
num += 1
|
numberValue.accept("\(num)")
|
}
|
|
@IBAction func reducleAction(_ sender: UIButton) {
|
var num = Int(numberValue.value) ?? 1
|
guard num != 1 else {return}
|
num -= 1
|
numberValue.accept("\(num)")
|
}
|
|
@IBAction func closeAction(_ sender: Any) {
|
view_bottomContainer.constant = -(JQ_ScreenW * 0.63)
|
UIView.animate(withDuration: 0.4) {
|
self.alpha = 0
|
self.layoutIfNeeded()
|
} completion: { _ in
|
self.removeFromSuperview()
|
}
|
}
|
|
@IBAction func completeAction(_ sender: UIButton) {
|
view_bottomContainer.constant = -(JQ_ScreenW * 0.63)
|
UIView.animate(withDuration: 0.4) {
|
self.alpha = 0
|
self.layoutIfNeeded()
|
} completion: { [weak self] _ in
|
let number = self?.numberValue.value.int ?? 1
|
self?.removeFromSuperview()
|
self?.clouse!(number)
|
}
|
}
|
|
override func layoutSubviews() {
|
super.layoutSubviews()
|
view_container.jq_addCorners(corner: [.topLeft,.topRight], radius: 20)
|
}
|
|
}
|