Привет
Нет прямого способа изменить фон. То, что вы можете сделать, это сделать так, чтобы представление, возвращаемое вами в функции viewForRow, имело собственный фон (затем добавьте тень на каждую сторону, если вам это нужно). Вы также можете поискать viewWithTag: но это никогда не является хорошей идеей, поскольку это может измениться в будущих выпусках iOS.
Есть ли особая причина, по которой вы реализуете оба вида viewForRow и TitleForRow? Обычно я просто заполняю метки viewForRow внутри этого метода делегата.
viewForRow имеет возможность многократного использования представлений в средстве выбора, во многом подобно UITableView, который вы должны проверить, если «reusingView: (UIView *) view» равен нулю, а если нет, то нет необходимости рисовать все заново. Просто заполните ярлыки.
Обычно я никогда не настраиваю средство выбора, если мне нужно что-то не полностью настраиваемое, я делю UITableView на подклассы, это гораздо более гибко и может сделать то же самое, что и средство выбора.
Для интервала вы можете использовать «высоту» строк, средство выбора будет центрировать виды, которые вы возвращаете в viewForRow, а затем просто убедитесь:
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
возвращает значение, превышающее ваше представление.
Провел ог лыкке;)