Question

For my uipickerview I have:

- (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;
}

I know how to make blue selection indicator (I put blue view behind uipickerview and set label background color to clearColor.

I need to have this picker (from/to age picker) (blue vertical lines are just for photoshop): enter image description here

Right now I've created this picker:

enter image description here

I have 1 questions:

I want to have white text color for area in selection indicator (or in the center of picker view) and orange text color in other area of pickerview. Is it possible?

Was it helpful?

Solution

Try this:

#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;

}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top