Цвет оттенка 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 для каждого компонента в вашем представлении.