UIPickerView - Как сделать некоторые строки невыбираемыми и неактивными - PullRequest
2 голосов
/ 30 октября 2010

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

Ответы [ 2 ]

2 голосов
/ 12 марта 2011

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

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

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

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

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

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

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

[pickerView reloadAllComponents];

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

0 голосов
/ 30 октября 2010

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

...