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];
Просто имейте в виду, что при настройке средства выбора вам нужно будет выполнить эту проверку при первом запуске, поэтому убедитесь, что по умолчанию в списке выбора нет недопустимых наборов данных.