Цвет оттенка 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]];
Почему цвет интерфейса не работает?
(Похоже, что свойство цвета не применялось правильно во время рисования элемента управления, но у меня нет доказательств, подтверждающих это.)
Ответы
Ответ 1
У меня такое же странное поведение. Единственным обходным решением, которое я мог придумать, было переключить tintColor на что-то другое, а затем переключить его обратно в viewDidLoad
[self.mySegmentedControl setTintColor:[UIColor clearColor]];
[self.mySegmentedControl setTintColor:self.view.tintColor];
Ответ 2
Если вы не хотите писать код, есть еще одно обходное решение, которое можно сделать в раскадровке.
Сохраняйте tintColor представления как значение по умолчанию. Управление сегментом будет работать тогда. Недостатком является то, что вам нужно будет установить tintColor для каждого компонента в вашем представлении.