你可以在第一選擇器中選擇行後立即更新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)
}
您好Aleksandr,感謝您的回覆。我正在使用UIDatePicker而不是UIPickerView。它沒有委託方法。有沒有使用UIDatePicker的另一種方法?如果不可能,我想我將不得不使用UIPickerView顯示時間,並使用您的代碼來設置最短時間。非常感謝。 – TSM
@TSM對不起,我的錯誤。我已經更新了我的答案。希望能幫助到你! –
它工作。謝謝Aleksandr! – TSM