UIPIckerView显示图像和字符串
问题描述:
我有一个UIPickerView与3个组件,我需要前2个组件显示一个字符串,第三个显示图像。我能做到这一点通过实现两个:UIPIckerView显示图像和字符串
- (NSString *) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row
forComponent:(NSInteger)component reusingView:(UIView *)view
或者我需要创建标签和只实现viewForRow
?
答
- (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;
}