2017-01-06 3 views
1

В моем проекте я использую контроллер сегмента. У них есть четыре сегмента в моем контроллере. Мой вопрос: я хочу, чтобы этот цвет фона и цвет шрифта и цвет выбранного цвета и разделителя были выделены цветом [Белый при выборе сегмента]Как изменить цвет сепаратора сегмента?

Нравится (0)

Expected segment Controller.

Но мой экран

My Original screen

Мой код

- (void)viewDidLoad { 
[self changeColor]; 

} 
- (void)changeColor{ 

    [[UISegmentedControl appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor colorWithRed:83.0f/255.0f green:198.0f/255.0f blue:255.0f/255.0f alpha:1.0]} forState:UIControlStateSelected]; 

    [[UISegmentedControl appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor colorWithRed:197.0f/255.0f green:197.0f/255.0f blue:197.0f/255.0f alpha:1.0]} forState:UIControlStateNormal]; 

    [mailboxsegment setTintColor:[UIColor colorWithRed:202.0f/255.0f green:202.0f/255.0f blue:202.0f/255.0f alpha:1.0]]; 
    UIFont *font = [UIFont boldSystemFontOfSize:09.0f]; 
    NSDictionary *attributes = [NSDictionary dictionaryWithObject:font 
                 forKey:NSFontAttributeName]; 
    [mailboxsegment setTitleTextAttributes:attributes forState:UIControlStateNormal]; 


} 

мой код, я буду пытаться изменить цвет фона и изменить размер шрифта

+1

UIColor * selectedColor = [UIColor colorWithRed: 98/255.0 green: 156/255.0 blue: 247/255.0 alpha: 1.0]; UIColor * deselectedColor = [UIColor colorWithRed: 54/255.0 green: 52/255.0 blue: 48/255.0 alpha: 1.0]; для (UIControl * subview in [SegmentRound subviews]) { if ([subview isSelected]) [subview setTintColor: selectedColor]; еще [subview setTintColor: deselectedColor]; } – Birendra

+0

ОК, я попробую @Birendra –

+0

нормально, если какой-либо вопрос, тогда скажите мне – Birendra

ответ

3
please try this one 

- (void)segmentAction:(UISegmentedControl *)segment 
{ 
    UIColor *selectedColor = [UIColor whiteColor]; 
    UIColor *deselectedColor = [UIColor colorWithRed: 54/255.0 green:52/255.0 blue:48/255.0 alpha:1.0]; 

    for (UIControl *subview in [segment subviews]) 
    { 
     if ([subview isSelected]) 
     [subview setTintColor:selectedColor]; 
     else 
     [subview setTintColor:deselectedColor]; 
    } 
} 
-1

Вы можете создать свой собственный segmented control , Но его немного сложнее создавать пользовательские segmented control как вы должны будете предоставить images для selected и deselected состояний, 1px image для separator и т.д.

Вместо этого я предлагаю вам использовать четыре различных buttons и применить логику, чтобы выбрать только один button за раз.

Чтобы получить эффект от separator цвета, поместите эти четыре buttons Внутри stack view или нормальный UIView и установить цвет фона этой точки зрения контейнера на цвет, который вы хотите установить для separator.

Смежные вопросы