How to insert images and text into specific rows of a UIpickerView?

I performed the following function:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { UIImage *img = [UIImage imageNamed:@"persona.jpeg"]; UIImageView *temp = [[UIImageView alloc] initWithImage:img]; temp.frame = CGRectMake(-70, 10, 60, 40); UILabel *channelLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, -5, 80, 60)]; channelLabel.text = @"persona y"; channelLabel.textAlignment = UITextAlignmentLeft; channelLabel.backgroundColor = [UIColor clearColor]; UIView *tmpView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 110, 60)]; [tmpView insertSubview:temp atIndex:0]; [tmpView insertSubview:channelLabel atIndex:1]; return tmpView; } 

and the result is as follows:

Screen

I need to insert an image and text into a specific line, any idea how to do this?
Thank you so much for your help.

My idea is to populate an array of images and a description to populate a UIPickerView

+1
source share
1 answer

Try to get Array NSDictionary data.

Dictionary structure: {Image:<imageName>, LabelText:<labelText>}

 - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { NSDictionary *dict = [datasourceArray objectAtIndex:row]; UIImage *img = [UIImage imageNamed:[dict valueForKey:@"Image"]]; // get image path from the dictionary UIImageView *temp = [[UIImageView alloc] initWithImage:img]; temp.frame = CGRectMake(-70, 10, 60, 40); UILabel *channelLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, -5, 80, 60)]; channelLabel.text = [dict valueForKey:@"LabelText"]; channelLabel.textAlignment = UITextAlignmentLeft; channelLabel.backgroundColor = [UIColor clearColor]; UIView *tmpView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 110, 60)]; [tmpView insertSubview:temp atIndex:0]; [tmpView insertSubview:channelLabel atIndex:1]; return tmpView; } 
+7
source

All Articles