uipickerview textcolor问题和颜色亮度问题

时间:2014-04-30 11:44:04

标签: ios objective-c uipickerview uipickerviewdelegate

对于我的uipickerview,我有:

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

    CGSize size = [pickerView rowSizeForComponent:0];
    UILabel *labelMain = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
    labelMain.backgroundColor = [UIColor clearColor];
    labelMain.font = [UIFont fontWithName:kFontSegoeSemiBold size:14];
    labelMain.textColor = kColor_default_orangeText;
    labelMain.textAlignment = NSTextAlignmentCenter;

    int age;
    // from
    if (pickerView == self.pickerFrom) {
        age = minAge + row;
    }
    // to
    else {
        age = minAge_pickerTo + row;
    }
    labelMain.text = [NSString stringWithFormat:@"%d", age];
    return labelMain;
}

我知道如何制作蓝色选择指示器(我将uipickerview后面的蓝色视图设置为clearColor。

我需要这个选择器(从/到年龄选择器)(蓝色垂直线仅适用于photoshop): enter image description here

现在我已经创建了这个选择器:

enter image description here

我有一个问题:

我想在选择指示器(或拾取器视图的中心)中使用白色文本颜色,在拾取器视图的其他区域中使用橙色文本颜色。有可能吗?

1 个答案:

答案 0 :(得分:5)

试试这个:

#pragma mark - UIPickerViewDelegate
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{

UILabel *label = (UILabel *)[self.yourPickerOutlet viewForRow:row forComponent:component];

label.textColor = [UIColor whiteColor];
label.backgroundColor = [UIColor blueColor];
}

#pragma mark PickerView DataSource
- (NSInteger)numberOfComponentsInPickerView:
(UIPickerView *)pickerView
{
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component
{

    return [dataSourseArray count];
}

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


    NSString* itemString = dataSourseArray[row];

    UILabel *label;

    if(view==nil){
        label = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 310, 30)];
        label.textColor = [UIColor blackColor];
        label.backgroundColor = [UIColor clearColor];
        label.shadowColor = [UIColor whiteColor];
        label.shadowOffset = CGSizeMake(0,1);
        label.textAlignment = NSTextAlignmentCenter;
    }else{
        label = (UILabel*) view;
    }



    label.text = itemString;


    return label;

}