Выбор Пикера приводит к изменению UIbutton Image - PullRequest
0 голосов
/ 12 июня 2011

Я искал метод для создания UIpicker, который выбранной строки приведет к изменению изображения кнопки UI.Обычный метод if, else для изменения кнопки здесь не работает.Кто-нибудь знает, как это можно сделать?

Вот код модели, который я нашел и использую.Как я могу изменить это?

Большое спасибо.

@synthesize button;
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];

    arrayColors = [[NSMutableArray alloc] init];

    [arrayColors addObject:@"Orange"];
    [arrayColors addObject:@"Yellow"];
    [arrayColors addObject:@"Green"];
    [arrayColors addObject:@"Blue"];
    [arrayColors addObject:@"Indigo"];
    [arrayColors addObject:@"Violet"];
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
    // Release anything that's not essential, such as cached data
}


- (void)dealloc {
    [arrayColors release];
    [super dealloc];
}

#pragma mark -
#pragma mark Picker View Methods

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {

    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {

    return [arrayColors count];
}

- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

    return [arrayColors objectAtIndex:row];
}

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

    NSLog(@"Selected Color: %@. Index of selected color: %i", [arrayColors objectAtIndex:row], row);
}

@end

1 Ответ

0 голосов
/ 12 июня 2011

В методе didSelectRow вы можете проверить, какой индекс был выбран. Затем создайте свои операторы if оттуда. Если по какой-то причине это не работает, я бы создал NSTimer для проверки значения каждую 1 секунду. Если значение средства выбора изменится, то поменяете ли кнопку изображения? Это первое, что пришло мне в голову.

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


    //component is the entire colomn on a picker "all of your colors"
    if (component == 0) {

                //row is the selected item in the colomn "orange"
        if (row == 0) {
              //color was selected
                     //change image here 
                 }

    }



}
...