UIPickerView - Как сделать некоторые строки невыбираемыми и неактивными

Я создаю свой собственный UIPickerview для дат, так как мне нужны только месяцы и дни, а не годы, поэтому я не могу использовать UIDatePicker. Когда выбраны разные месяцы, я не могу воспроизвести то, как UIDatepicker grey пропустил недоступные дни. Например: если выбран ноябрь, можно выбрать дни 1-30, а 31 - нет при использовании UIDatepicker. Кто-нибудь знает, как повторить это и сделать определенные строки серыми и недоступными для выбора? заранее спасибо

2 ответа

Решение

Я понимаю, что вы, возможно, уже поняли это, но я хотел бы добавить дополнительную информацию для тех, кто ищет тот же ответ.

Альтернативный маршрут, который вы могли бы попробовать через:

-(void)pickerView:(UIPickerView  *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

В этом методе вы будете проверять, есть ли у определенных компонентов в pickerView правильный выбор. Если он не сбросил конкретный компонент (столбец - почему они просто так его не назвали) в правильную строку с:

[pickerView selectRow:validRow inComponent:component animated:YES];

Это даст эффект, что если пользователь выберет конкретную недопустимую строку, он прокрутит назад (или вниз) к верной.

Кроме того, вы можете изменить набор данных для рассматриваемого компонента, а затем выполнить:

[pickerView reloadAllComponents];

Просто имейте в виду, что при настройке средства выбора вам нужно будет выполнить эту проверку при первом запуске, поэтому убедитесь, что по умолчанию в списке выбора нет недопустимых наборов данных.

Вам нужно написать собственный вид выбора

Другие вопросы по тегам