2017-09-21 56 views
0

我想製作員工考勤應用程序。我有兩個時間選擇器,我使用UIDatePickerMode.time。第一次選擇器是供用戶選擇開始時間,第二時間選擇器用於完成時間,iOS Swift - 設置開始時間和結束時間(僅限Fututre時間)UIDatePicker

示例:開始時間:上午8:00,完成時間:下午5:00。

如何將第二時間選擇器設置爲僅允許從上午8:01起選擇時間?因此,用戶將無法選擇較早的時間,而只能選擇未來的時間,

示例:開始時間:上午8:00,結束時間:上午7:00。我如何避免這種情況?

請幫忙。謝謝。

回答

0

你可以在第一選擇器中選擇行後立即更新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) 
} 
+0

您好Aleksandr,感謝您的回覆。我正在使用UIDatePicker而不是UIPickerView。它沒有委託方法。有沒有使用UIDatePicker的另一種方法?如果不可能,我想我將不得不使用UIPickerView顯示時間,並使用您的代碼來設置最短時間。非常感謝。 – TSM

+0

@TSM對不起,我的錯誤。我已經更新了我的答案。希望能幫助到你! –

+0

它工作。謝謝Aleksandr! – TSM

相關問題