//
|
// SpecialSealAffirmView.swift
|
// OKProject
|
//
|
// Created by 无故事王国 on 2022/5/23.
|
// Copyright © 2022 yangwang. All rights reserved.
|
//
|
|
import UIKit
|
import RxRelay
|
|
class SpecialSealAffirmView: UIView,LDNibView{
|
|
@IBOutlet weak var containerView: UIView!
|
@IBOutlet weak var peo1Btn: UIButton!
|
@IBOutlet weak var peo2Btn: UIButton!
|
@IBOutlet weak var peo3Btn: UIButton!
|
@IBOutlet weak var peo4Btn: UIButton!
|
@IBOutlet weak var safeBottomCons: NSLayoutConstraint!
|
private var defaultNum = BehaviorRelay<Int>(value: 1)
|
private var affirmClouse:((Int)->Void)?
|
|
override func awakeFromNib() {
|
super.awakeFromNib()
|
alpha = 0
|
safeBottomCons.constant = -192
|
peo1Btn.isSelected = true
|
peo1Btn.backgroundColor = UIColor(hexString: "#00BF30")
|
peo1Btn.borderWidth = 0
|
setRx()
|
|
let peosBtn = [self.peo1Btn,self.peo2Btn,self.peo3Btn,self.peo4Btn]
|
for (index,btn) in peosBtn.enumerated() {
|
var attribute = AttributedStringbuilder.build()
|
attribute = attribute.add(string: "\(index+1)", withFont: UIFont.systemFont(ofSize: 16, weight: .semibold), withColor: .white)
|
attribute = attribute.add(string: "人", withFont: UIFont.systemFont(ofSize: 10, weight: .semibold), withColor: .white)
|
btn!.setAttributedTitle(attribute.mutableAttributedString, for: .selected)
|
|
var attribute1 = AttributedStringbuilder.build()
|
attribute1 = attribute1.add(string: "\(index+1)", withFont: UIFont.systemFont(ofSize: 16, weight: .semibold), withColor: UIColor(hexString: "#27282D")!.withAlphaComponent(0.6))
|
attribute1 = attribute1.add(string: "人", withFont: UIFont.systemFont(ofSize: 10, weight: .semibold), withColor: UIColor(hexString: "#27282D")!.withAlphaComponent(0.6))
|
btn!.setAttributedTitle(attribute1.mutableAttributedString, for: .normal)
|
}
|
}
|
|
private func setRx(){
|
defaultNum.subscribe(onNext: {[unowned self]num in
|
let peosBtn = [self.peo1Btn,self.peo2Btn,self.peo3Btn,self.peo4Btn]
|
for btn in peosBtn{
|
if btn!.tag == (num + 9){
|
btn!.isSelected = true
|
btn!.backgroundColor = UIColor(hexString: "#00BF30")
|
btn!.borderWidth = 0
|
}else{
|
btn!.isSelected = false
|
btn!.backgroundColor = .clear
|
btn!.borderWidth = 0.6
|
}
|
}
|
}).disposed(by: rx.disposeBag)
|
}
|
|
override func layoutSubviews() {
|
super.layoutSubviews()
|
|
}
|
|
|
@discardableResult
|
static func show(defaultNum:Int? = 1,affirmClouse:@escaping (Int)->Void)->SpecialSealAffirmView{
|
let sealAffirmView = SpecialSealAffirmView.ld_loadNibView()
|
sealAffirmView.affirmClouse = affirmClouse
|
sealAffirmView.defaultNum.accept(defaultNum ?? 1)
|
app.window?.addSubview(sealAffirmView)
|
sealAffirmView.frame = app.window?.frame ?? .zero
|
|
sealAffirmView.layoutIfNeeded()
|
UIView.animate(withDuration: 0.4) {
|
sealAffirmView.alpha = 1
|
sealAffirmView.safeBottomCons.constant = 12
|
sealAffirmView.layoutIfNeeded()
|
} completion: { _ in
|
|
}
|
return sealAffirmView
|
}
|
|
@IBAction func closeAction(_ sender: UIButton) {
|
hidden()
|
}
|
@IBAction func affirmAction(_ sender: UIButton) {
|
affirmClouse?(defaultNum.value)
|
hidden()
|
}
|
|
private func hidden(){
|
UIView.animate(withDuration: 0.4) {
|
self.alpha = 0
|
self.safeBottomCons.constant = -192
|
self.layoutIfNeeded()
|
} completion: { _ in
|
self.removeFromSuperview()
|
}
|
}
|
|
@IBAction func affirmPeoNumAction(_ sender: UIButton) {
|
if sender.tag == 10{
|
defaultNum.accept(1)
|
}else if sender.tag == 11{
|
defaultNum.accept(2)
|
}else if sender.tag == 12{
|
defaultNum.accept(3)
|
}else if sender.tag == 13{
|
defaultNum.accept(4)
|
}
|
}
|
}
|