tvos UISegmentedControl стиль фокуса не меняется

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

Обычно сегментный дисплей выглядит следующим образом.

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

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

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

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

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

2) переопределение setHighlighted метод из UISegmentedControl

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

2 ответа

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

label.backgroundColor = segmentedControl.tintColor;

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

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

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

segment.backgroundColor = Color.clear;

Легко очистить цвет фона элемента управления сегментом:

yourSegment.backgroundColor =.clear

Другие вопросы по тегам