#import "ViewController.h" @interface ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate> { NSArray *pickerArray; } @property (weak, nonatomic) IBOutlet UIPickerView *myPickerView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _myPickerView.dataSource=self; _myPickerView.delegate=self; _myPickerView.showsSelectionIndicator=YES; pickerArray=[NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 3; } -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { return pickerArray.count; } -(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { CGRect rect=CGRectMake(0, 0, [self pickerView:pickerView widthForComponent:row], [self pickerView:pickerView rowHeightForComponent:row]); UIView *testView=[[UIView alloc]initWithFrame:rect]; [testView setBackgroundColor:[UIColor clearColor]]; [testView setOpaque:YES]; UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(8, 0, [self pickerView:pickerView widthForComponent:row]-16.0f, [self pickerView:pickerView rowHeightForComponent:row])]; [label setBackgroundColor:[UIColor clearColor]]; label.textAlignment=NSTextAlignmentCenter; label.text=pickerArray[row]; switch (row) { case 1: case 2: { testView.backgroundColor=component==0?[UIColor greenColor]:[UIColor blueColor]; } case 3: { testView.backgroundColor=component==0?[UIColor brownColor]:[UIColor redColor]; } break; default: { testView.backgroundColor=component==0?[UIColor grayColor]:[UIColor orangeColor]; } break; } label.font=[UIFont boldSystemFontOfSize:14.0f]; [testView addSubview:label]; return testView; } //可有可无 -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { return pickerArray[row]; } - (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component; { return 120; } -(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component { return 50; } - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { NSLog(@"row=%ld",row); }
时间: 2024-11-10 08:26:07