2014-06-30 46 views
-1

所以我想要的是在PickerView中为我的行制作单独的颜色,但我真的不知道如何做到这一点。知道如何制作个性化的文字颜色也很酷。 谢谢。PickerView为行设置单独的颜色

+0

你到目前为止尝试过什么吗?如果是这样,你有什么尝试? –

回答

1

所以,如果你正在检查的UIPickerView datasource,你会发现下面的方法:

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

我想你可以通过处理像这样使用它,以修改视图在pickerView

  • 启动您的pickerView

在你viewDidLoad为例如:

UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height/4, self.view.frame.size.width, self.view.frame.size.height/2)]; 
pickerView.delegate = self; 
pickerView.dataSource = self; 

[self.view addSubview:pickerView]; 
  • 调用所需的方法并进行更改:

例子:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 
{ 
UIView *customRow = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 30)]; 
switch (row) { 
    case 0: 
     customRow.backgroundColor = [UIColor redColor]; 
     return customRow; 
     break; 

    case 1: 
     customRow.backgroundColor = [UIColor orangeColor]; 
     return customRow; 

    case 2: 
     customRow.backgroundColor = [UIColor yellowColor]; 
     return customRow; 

    case 3: 
     customRow.backgroundColor = [UIColor greenColor]; 
     return customRow; 

    case 4: 
     customRow.backgroundColor = [UIColor blueColor]; 
     return customRow; 

    case 5: 
     customRow.backgroundColor = [UIColor purpleColor]; 
     return customRow; 

    default: 
     return nil; 
     break; 
    } 
} 
  • 不要在执行忘记所需的方法:

在你的控制器中:

#pragma mark: UIPickeView datasource 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
    return 1; 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    return 6; 
}