繁体   English   中英

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

[英]iOS Swift - Set Start Time and End Time (Fututre Time only) UIDatePicker

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

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

如何将第二个时间选择器设置为仅允许从上午 8:01 开始选择时间? 所以用户将无法选择更早的时间,而只能选择未来的时间,

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

请帮忙。 谢谢。

您可以在第一个选择器中选择行后立即在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)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM