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

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


person Norman G    schedule 29.10.2010    source источник


Ответы (2)


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

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

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

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

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

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

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

[pickerView reloadAllComponents];

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

person user503821    schedule 12.03.2011

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

person Aaron Saunders    schedule 29.10.2010