iOS Swift - 设置开始时间和结束时间(仅限 future 时间)UIDatePicker

标签 ios swift date time datepicker

我想做一个员工考勤应用程序。我有两个时间选择器,我使用 UIDatePickerMode.time。第一个时间选择器用于选择开始时间,第二个时间选择器用于选择结束时间,

示例:开始时间:上午 8:00,结束时间:下午 5:00。

如何将第二个时间选择器设置为仅允许选择上午 8:01 以后的时间?因此用户将无法选择更早的时间,而只能选择 future 的时间,

示例:开始时间:上午 8:00,结束时间:上午 7:00。我该如何避免这种情况?

请帮忙。谢谢。

最佳答案

您可以在第一个选择器中选择行后立即在 UIPickerViewDelegate 方法中更新第二个选择器的数据:

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    if pickerView == startPicker {
        // update endPicker.minimumDate
        endPicker.minimumDate = Calendar.current.date(byAdding: .minute, value: 1, to: pickerView.date)
        // don't forget to add some checks (for example if your startPicker time is set to 23:59)
    }
}

更新:

对于UIDatePicker(不是UIPickerView):

startPicker.addTarget(self, action: #selector(datePickerValueChanged(_:)), for: .valueChanged)

并在方法中做类似的事情

func datePickerValueChanged(_ datePicker: UIDatePicker) {
    endPicker.minimumDate = Calendar.current.date(byAdding: .minute, value: 1, to: datePicker.date)
    // don't forget to add some checks (for example if your startPicker time is set to 23:59)
}

关于iOS Swift - 设置开始时间和结束时间(仅限 future 时间)UIDatePicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46334427/

相关文章:

python - 如何在Python中根据日期的概率生成随机日期?

ios - 为什么我的 UILabel 不改变字体?

iphone - 如何在iOS的ViewController之间传递对象?

ios - 对成员 'upload(_:_:headers:file:)' 的模糊引用

ios - 如何使用 UIContainerView 在 iPad 上隐藏 UISplitViewController master 上嵌入的辅助 UITableViewController 的 DetailView

arrays - 数组元素的快速返回索引

java - 如何使用另一个先前日期作为引用来获取先前日期

Bash on macOS - 获取给定年份每个星期六的日期列表

ios - 为 SpriteKit 中的函数添加延迟

ios - NSFetchedResultsController 仅在 Controller 即将插入另一个部分时将相同的单元格插入两个部分