В настоящий момент селектор просто показывает выбранные данные. Я хочу, чтобы у него было слово после выбранного значения, так же, как приложение часов iPhone имеет "часы" и "мин" в селекторе.
В настоящий момент селектор просто показывает выбранные данные. Я хочу, чтобы у него было слово после выбранного значения, так же, как приложение часов iPhone имеет "часы" и "мин" в селекторе.
вам нужно создать две метки самостоятельно, используя метод ниже. Это метод делегата pickerView, который автоматически вызывается при загрузке pickerview или при его получении команды reloadcomponent.
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)theView{
UIView *pickerviewtemp=[[UIView alloc] initWithFrame:CGRectZero];
UILabel *lbl=[[[UILabel alloc] initWithFrame:yourrequiredframe]autorelease];
[lbl setBackgroundColor:[UIColor clearColor]];
[lbl setText:*set text according to yourself*];
[lbl setFont:[UIFont boldSystemFontOfSize:16]];
[pickerviewtemp addSubview:lbl];
UILabel *lb2=[[[UILabel alloc] initWithFrame:yourrequiredframe]autorelease];
[lbl2 setBackgroundColor:[UIColor clearColor]];
[lbl2 setText:*set text according to yourself*];
[lbl2 setFont:[UIFont boldSystemFontOfSize:16]];
[pickerviewtemp addSubview:lbl2];
return pickerviewtemp;
}
Здесь я получил правильный ответ на этот вопрос (я сделал это на один component
изменил его в соответствии с вашим требованием) взгляните:
вам необходимо реализовать метод:
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
//set your View. Here is an example ..
UIView *pickerviewtemp=[[UIView alloc] initWithFrame:CGRectZero];
UILabel *lbl=[[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 50)]autorelease];
[lbl setBackgroundColor:[UIColor clearColor]];
[lbl setText:[array_from objectAtIndex:row]];
[lbl setFont:[UIFont boldSystemFontOfSize:16]];
[pickerviewtemp addSubview:lbl];
return pickerviewtemp;
}
Возьмите переменную int
в файле .h
с именем lastSelectedIndex
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
UILabel *label = (UILabel*)[pickerView viewWithTag:999+(component*lastSelectedIndex)]; // you can set your own tag...
[label removeFromSuperview];
UIView *view = [pickerView viewForRow:row forComponent:component];
UILabel *lbl2=[[[UILabel alloc] initWithFrame:CGRectMake(110, 0, 50, 50)]autorelease];
lbl2.tag = 999+(component*row);
[lbl2 setBackgroundColor:[UIColor clearColor]];
[lbl2 setText:@yourtext"];
[lbl2 setFont:[UIFont boldSystemFontOfSize:16]];
[view addSubview:lbl2];
lastSelectedIndex = row;
}
Я тестировал его. Надеюсь, это поможет вам....:)
Вам нужно будет выполнить индивидуальный UIPickerView
В вашем случае, если вам нужно просто добавить некоторые метки, вы можете просто добавить к UIPickerView
Two UILabel
over, потому что UIPickerView
- a UIView
... Быстрый, но грязный...