2017-09-21 2 views
0

Je souhaite créer une application de présence des employés. J'ai deux sélecteurs de temps, j'utilise le UIDatePickerMode.time. Le premier sélecteur permet à l'utilisateur de sélectionner l'heure de début et le deuxième sélecteur à l'heure de fin,iOS Swift - Définir l'heure de début et l'heure de fin (Heure Futurtre uniquement) UIDatePicker

exemple: Heure de début: 8h00, heure de fin: 17h00.

Comment régler le second sélecteur de temps pour permettre uniquement la sélection de l'heure à partir de 8h01? Par conséquent, l'utilisateur ne pourra pas sélectionner l'heure précédente, mais uniquement l'heure suivante.

Exemple: Heure de début: 8h00, Heure de fin: 7h00. Comment puis-je éviter cela?

Aidez-nous s'il vous plaît. Je vous remercie.

Répondre

0

Vous pouvez mettre à jour les données pour le deuxième sélecteur de méthode UIPickerViewDelegate juste après avoir sélectionné la ligne dans le premier sélecteur:

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) 
    } 
} 

Mise à jour:

Pour UIDatePicker (non UIPickerView):

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

Et dans la méthode faire quelque chose comme ça

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

Bonjour Aleksandr, merci pour votre réponse. J'utilise un UIDatePicker et non le UIPickerView. Et il n'a pas de méthode de délégué. Existe-t-il un autre moyen d'utiliser UIDatePicker? Si ce n'est pas possible, je suppose que je devrais montrer l'heure en utilisant UIPickerView et utiliser votre code pour définir le temps minimum. Merci beaucoup. – TSM

+0

@ TSM Désolé pour mon erreur. J'ai mis à jour ma réponse. J'espère que cela aide! –

+0

Cela a fonctionné. Merci, Aleksandr! – TSM