PickerView为行创建单独的颜色

时间:2014-06-30 18:19:47

标签: ios text colors uipickerview uicolor

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

1 个答案:

答案 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;
}