2013-10-08 3 views
10

Я хочу изменить цвет UISegmentedControl на iOS 7. Если я изменил цвет оттенка в построителе интерфейса, его части рисуются в цвете оттенка, а части рисуются в стандартном синем.Цвет оттенка UISegmentedControl не нарисован правильно на iOS 7

Изображение должно быть понятным. Я выбрал красный цвет оттенка.

enter image description here

Я получаю такое же поведение, как на тренажере и на устройстве.

Если я нажимаю элементы на сегментированном элементе управления, они перерисовываются в запрошенном цвете оттенка.

Если я укажу цвет оттенка в viewDidLoad, все будет работать правильно.

[segmentedControl setTintColor:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0]]; 

Почему цвет интерфейса не работает?

(Он чувствует, что свойство цвета правильно не применяется в то время управления первым нарисованное, но у меня нет никаких доказательств, чтобы поддержать это.)

+0

У меня такая же проблема. Похоже, что он очищается после выбора одного из других сегментов. Хороший улов при настройке «вручную» в 'viewDidLoad'. Надеюсь, это будет исправлено в обновлении Xcode и/или iOS. – Nick

ответ

8

У меня такое же странное поведение. Единственный способ решения проблемы я мог придумать было переключить tintColor на что-то другое, а затем переключить его обратно в viewDidLoad

[self.mySegmentedControl setTintColor:[UIColor clearColor]]; 
[self.mySegmentedControl setTintColor:self.view.tintColor]; 
0

Если вы не хотите писать код, есть еще один обходной путь, который может быть сделано в раскадровки.

Сохранять оттенок цвета в качестве значения по умолчанию. Управление сегментом будет работать тогда. Недостатком является то, что вам нужно будет установить tintColor для каждого компонента в вашем представлении.

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