стиль фокуса UISegmentedControl не меняется - PullRequest
2 голосов
/ 18 октября 2019

Я хочу изменить цвет фона UISegmentedControl, когда он выделен в tvOS.

Обычно сегментный дисплей, как показано ниже.
enter image description here

При изменении фокуса для изменения выбранного сегмента в это время отображается, как показано ниже.
enter image description here

Как изменить белый фон при фокусировке UISegmentedControl?

Я пытался выполнять следующие действия, но не работал.

1)создайте пользовательский класс UISegmentedControl и выполните следующий код в awakeFromNib

[self setBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[self setBackgroundImage:image forState:UIControlStateFocused barMetrics:UIBarMetricsDefault];

2) override setHighlighted метод UISegmentedControl

3) измените цвет фонав didUpdateFocusInContext метод.

1 Ответ

2 голосов
/ 08 ноября 2019

Исходя из моего понимания вашего вопроса, вы хотите изменить цвет фона так же, как цвет оттенка UISegmentControl. Что вам нужно сделать, это просто использовать это:

label.backgroundColor = segmentedControl.tintColor;

Надеюсь, это поможет вам, если не попробовать это:

Вам просто нужно дать цвет фона, чтобы убрать из раскадровки. Это происходит из-за выбора фона по умолчанию и выбора по умолчанию в соответствии с темой. После того, как вы установите прозрачный цвет сегментаControl, вы получите требуемый результат.

Или вы можете сделать следующее: Попробуйте установить свой фоновый цвет UISegmentcontrol для очистки в viewDidLoad, вы получите свой результат. Я попробовал это, и это сработало для меня.

segment.backgroundColor = Color.clear;
...