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.
79 lines
1.9 KiB
79 lines
1.9 KiB
// |
|
// 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() |
|
} |
|
} |
|
}
|
|
|