Создайте свое средство выбора, создайте маркировку с тенью и продвиньте его к подпредставлению средства выбора ниже представления selectionIndicator.
Это выглядело бы примерно так
UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(135, 93, 80, 30)] autorelease];
label.text = @"Label";
label.font = [UIFont boldSystemFontOfSize:20];
label.backgroundColor = [UIColor clearColor];
label.shadowColor = [UIColor whiteColor];
label.shadowOffset = CGSizeMake (0,1);
[picker insertSubview:label aboveSubview:[picker.subviews objectAtIndex:5]];
//When you have multiple components (sections)...
//you will need to find which subview you need to actually get under
//so experiment with that 'objectAtIndex:5'
//
//you can do something like the following to find the view to get on top of
// define @class UIPickerTable;
// NSMutableArray *tables = [[NSMutableArray alloc] init];
// for (id i in picker.subviews) if([i isKindOfClass:[UIPickerTable class]]) [tables addObject:i];
// etc...
- Плата, которую это передает
Существует 2 вещи, которые можно сделать:
, Если каждая строка и компонент последовательно являются простым текстом, чем Вы, может просто использовать реализацию UIPickerView по умолчанию как есть, и в Вашем контроллере реализуют следующий UIPickerViewDelegate
методы:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
для отслеживания, которых строка выбрана
и возвращает другой текст для выбранной строки в реализации - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
, Если у Вас должно быть что-то другое, чем текст, поскольку дифференциатор для выбранной строки, чем Вы в основном должен создать Ваше собственное CustomPickerView
, который происходит из UIPickerView
и затем
Первая реализация - (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated
, и отслеживайте, которых выбрана строка.
Затем реализуют - (UIView *)viewForRow:(NSInteger)row forComponent:(NSInteger)component
для генерации другого представления для выбранной строки.
образец А для использования UIPickerView или реализации пользовательского UIPickerView доступен в SDK, названном UICatalog.
Для воссоздавания рельефного взгляда для маркировок... просто создают изображение с текстом, так, чтобы можно было легко применить очень похожий эффект к тексту... и затем использовать UIImageViews вместо, Маркирует
Вместо того, чтобы добавлять маркировку в UIPickerView, просто засуньте его сверху его как одноуровневый элемент, который перекрывает его. Единственная вещь это проблематично, состоит в том, как получить тот же шрифт. Я не знаю, как получить тот рельефный взгляд, но возможно кто-то еще делает, в этом случае, это не действительно проблема вообще.
Можно ли показать, где Вы определяете pickerTop и pickerSize?
CGFloat pickerTop = timePicker.bounds.origin.y;
CGSize pickerSize = timePicker.bounds.size;
, Именно это я имею, но pickerTop, кажется, является неправильным.
микрофон
Тиснение объясняется здесь: Добавление тиснения к UILabel в navigationItem.titleView (как показано с navigationItem.title)