Я могу показать время и изменить временные интервалы, но я не знаю, как получить временной интервал с датами, подобными фотографии ниже, если я не напишу их жестко.
Стараясь избегать использования кокапод, если мне не нужно. Прямо сейчас я жестко кодирую это, но только время, я не могу получить дату, не имея еще UIPicker
.
Код, относящийся к UIPickerView
, о котором идет речь:
private var deliveryTimesPicker = UIPickerView()
private var deliveryTimes = ["10 AM - 11 AM", "11 AM - 12 PM", "12 PM - 1 PM", "1 PM - 2 PM", "2 PM - 3 PM", "3 PM - 4 PM", "4 PM - 5 PM", "5 PM - 6 PM", "6 PM - 7 PM", "7 PM - 8 PM", "8 PM - 9 PM", "9 PM - 10 PM", "10 PM - 11 PM"]
private var selectedDeliveryTime = 0
override func viewDidLoad() {
...
self.deliveryTimeTF.text = self.deliveryTimes.first!
self.doneToolbar.barStyle = .default
self.doneToolbar.isTranslucent = true
self.doneToolbar.isUserInteractionEnabled = true
self.doneToolbar.setItems([
UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(self.dismissKeyboard)),
UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil),
UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(self.pickerViewDone))
], animated: true)
self.doneToolbar.sizeToFit()
self.deliveryTimesPicker.delegate = self
self.deliveryTimesPicker.dataSource = self
self.deliveryTimesPicker.tag = 0
self.deliveryTimesPicker.selectRow(self.selectedDeliveryTime, inComponent: 0, animated: true)
self.deliveryTimeTF.inputView = self.deliveryTimesPicker
self.deliveryTimeTF.inputAccessoryView = self.doneToolbar
}
@objc func pickerViewDone() {
if self.deliveryTimeTF.isEditing {
self.deliveryTimeTF.text = self.deliveryTimes[self.selectedDeliveryTime]
}
dismissKeyboard()
}
extension RequestViewController: UIPickerViewDelegate {
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView.tag == 0 {
self.selectedDeliveryTime = row
return self.deliveryTimes[self.selectedDeliveryTime]
}
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView.tag == 0 {
self.selectedDeliveryTime = row
}
}
}
Как моя:
Как я хочу, чтобы это было (цветовая тема важна не только для ее функции):