2012-04-12 10 views
0

Ich habe ein UIPickerView mit 3 Komponenten, ich brauche die ersten 2 Komponenten, um eine Zeichenfolge und die dritte, um ein Bild anzuzeigen. Kann ich das sowohl durch die Umsetzung:UIPIckerView zeigt Bilder und Strings

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

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row 
      forComponent:(NSInteger)component reusingView:(UIView *)view 

Oder muss ich Etiketten erstellen und nur viewForRow implementieren?

Antwort

5
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row 
     forComponent:(NSInteger)component reusingView:(UIView *)view 
    { 
UILabel *firstLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 0, 60, 32)]; 
firstLabel.text = [array1 objectAtIndex:row]; 
firstLabel.textAlignment = UITextAlignmentLeft; 
firstLabel.backgroundColor = [UIColor clearColor]; 

UILabel *secondLabel = [[UILabel alloc] initWithFrame:CGRectMake(165, 0, 60, 32)]; 
secondLabel.text = [array2 objectAtIndex:row]; 
secondLabel.textAlignment = UITextAlignmentLeft; 
secondLabel.backgroundColor = [UIColor clearColor]; 

UIImage *img = [UIImage imageNamed:[NSString stringWithFormat:@"%@.png",[countries objectAtIndex:row]]]; 

UIImageView *icon = [[UIImageView alloc] initWithImage:img];   
temp.frame = CGRectMake(170, 0, 30, 30); 




UIView *tmpView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 290, 32)] autorelease]; 
[tmpView insertSubview:icon atIndex:0]; 
[tmpView insertSubview:firstLabel atIndex:0]; 
[tmpView insertSubview:secondLabel atIndex:0]; 
[tmpView setUserInteractionEnabled:NO]; 
[tmpView setTag:row]; 
[channelLabel release]; 
[temp release]; 
return tmpView; 


    }