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