// // DatePickerView.swift // Twear // // Created by yangbin on 2021/12/24. // import UIKit class DatePickerView: UIView { typealias clickAlertClosure = (_ date: Date) -> Void var clickClosure: clickAlertClosure! private let bgView = UIView() //白色框 private lazy var titleLabel: UILabel = { let label = UILabel() label.font = RegularFont(15) label.textColor = .black label.textAlignment = .center return label }() // private let minuteArray: [Int] = { // var array: [Int] = [] // for i in 0..<50 { // array.append((i+1)*1000) // } // return array // }() private lazy var sureBtn: UIButton = { let button = UIButton() button.addTarget(self, action: #selector(clickBtnAction(_:)), for: .touchUpInside) // button.setTitleColor(UIColor.rgbColorFromHex(0x00993E), for: .normal) button.setTitle(LocString("确定"), for: .normal) button.titleLabel?.font = RegularFont(11) button.tag = 1 return button }() private lazy var cancelBtn: UIButton = { let button = UIButton() button.addTarget(self, action: #selector(clickBtnAction(_:)), for: .touchUpInside) button.setTitleColor(UIColor.rgbColorFromHex(0x808080), for: .normal) button.setTitle(LocString("取消"), for: .normal) button.titleLabel?.font = RegularFont(11) button.tag = 2 return button }() lazy var datePicker: UIDatePicker = { let picker = UIDatePicker() picker.datePickerMode = .time picker.locale = .current if #available(iOS 13.4, *) { picker.preferredDatePickerStyle = .wheels } else { } return picker }() init(title: String, sureText: String = LocString("确定"), cancelText: String = LocString("取消"), titleColor: UIColor = UIColor.rgbColorFromHex(0x00993E)) { super.init(frame: CGRect(x: 0, y: 0, width: SCREEN_WIDTH, height: SCREEN_HEIGHT)) createView(title: title, sureText: sureText, cancelText: cancelText, titleColor: titleColor) } func createView(title: String, sureText: String, cancelText: String, titleColor: UIColor) { self.backgroundColor = UIColor.black.withAlphaComponent(0.1) bgView.backgroundColor = .white // self.titleColor = titleColor titleLabel.text = title sureBtn.setTitle(sureText, for: .normal) cancelBtn.setTitle(cancelText, for: .normal) sureBtn.setTitleColor(titleColor, for: .normal) let lineView = UIView() lineView.backgroundColor = LineColor addSubview(bgView) bgView.addSubview(titleLabel) bgView.addSubview(sureBtn) bgView.addSubview(cancelBtn) bgView.addSubview(lineView) bgView.addSubview(datePicker) bgView.snp.makeConstraints { (make) in make.left.right.bottom.equalToSuperview() make.height.equalTo(250) } cancelBtn.snp.makeConstraints { make in make.height.equalTo(40) make.width.equalTo(65) make.left.top.equalToSuperview() } sureBtn.snp.makeConstraints { make in make.height.equalTo(40) make.width.equalTo(65) make.right.top.equalToSuperview() } titleLabel.snp.makeConstraints { make in make.centerX.equalToSuperview() make.centerY.equalTo(cancelBtn) } lineView.snp.makeConstraints { make in make.left.right.equalToSuperview() make.top.equalToSuperview().offset(40) make.height.equalTo(0.5) } datePicker.snp.makeConstraints { make in make.top.equalTo(lineView) make.left.right.bottom.equalToSuperview() } bgView.layoutIfNeeded() bgView.setCorners(corners: [.topLeft, .topRight], radio: 15) } // @objc func dateChanged(datePicker : UIDatePicker){ // let formatter = DateFormatter() // //日期样式 // formatter.dateFormat = "yyyy年MM月dd日 HH:mm:ss" // print(formatter.string(from: datePicker.date)) // } @objc func clickBtnAction(_ sender: UIButton) { if clickClosure != nil && sender.tag == 1 { clickClosure!(datePicker.date) } dismiss() } func show() { let wind = KeyWindow self.alpha = 0 wind.addSubview(self) UIView.animate(withDuration: 0.25, animations: { () -> Void in self.alpha = 1 }) } @objc func dismiss() { UIView.animate(withDuration: 0.25, animations: { () -> Void in self.alpha = 0 }, completion: { (finish) -> Void in if finish { self.removeFromSuperview() } }) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } /* // Only override draw() if you perform custom drawing. // An empty implementation adversely affects performance during animation. override func draw(_ rect: CGRect) { // Drawing code } */ }