You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
1.9 KiB

2 years ago
//
// AlarmPickerCell.swift
// Lookfit
//
// Created by lemo on 2018/5/11.
// Copyright © 2020 ecell. All rights reserved.
//
import UIKit
class AlarmPickerCell: TableViewCell {
typealias PickerCellClosure = (String) -> Void
var pickerClosure: PickerCellClosure?
var selectedItem: String? {
didSet {
setSelectedItem()
}
}
var disposeBag = DisposeBag()
let timePicker = UIDatePicker.init().then {
$0.datePickerMode = .time
$0.locale = Locale.current
if #available(iOS 13.4, *) {
$0.preferredDatePickerStyle = .wheels
}
}
override func makeUI() {
super.makeUI()
contentView.addSubview(timePicker)
}
override func layoutSubviews() {
super.layoutSubviews()
timePicker.snp.makeConstraints { (make) in
make.edges.equalToSuperview()
}
}
}
extension AlarmPickerCell {
// func bindUI() {
// }
func setSelectedItem() {
timePicker.rx.controlEvent(UIControl.Event.valueChanged).subscribe(onNext: { [weak self] in
guard let `self` = self else { return }
//
let formatter = DateFormatter()
formatter.dateFormat = "HH:mm"
//
let time = formatter.string(from: self.timePicker.date)
print("time: \(time)")
//
if let pickerClosure = self.pickerClosure {
pickerClosure(time)
}
})
.disposed(by: disposeBag)
if let item = self.selectedItem {
//
let formatter = DateFormatter()
formatter.dateFormat = "HH:mm"
let date = formatter.date(from: item)
timePicker.date = date ?? Date.init()
}
}
}