Подтвердить что ты не робот

Как я могу сделать мои метки UIPickerView ярлыками после выбранного значения?

В настоящий момент селектор просто показывает выбранные данные. Я хочу, чтобы у него было слово после выбранного значения, так же, как приложение часов iPhone имеет "часы" и "мин" в селекторе.

enter image description here

4b9b3361

Ответ 1

вам нужно создать две метки самостоятельно, используя метод ниже. Это метод делегата 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;
}

Ответ 2

Здесь я получил правильный ответ на этот вопрос (я сделал это на один 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;
}

Я тестировал его. Надеюсь, это поможет вам....:)

Ответ 3

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

В вашем случае, если вам нужно просто добавить некоторые метки, вы можете просто добавить к UIPickerView Two UILabel over, потому что UIPickerView - a UIView... Быстрый, но грязный...