Bhaumik Surani
Bhaumik Surani

Reputation: 1833

tvos UISegmentedControl focus style not change

I want to change background color of UISegmentedControl when it highlighted in tvOS.

Normally Segment display like following.
enter image description here

When change focus for change selected segment at that time display like following.
enter image description here

How to change white background when UISegmentedControl focused?

I was try following things but not working.

1) create custom class of UISegmentedControl and do following code in awakeFromNib

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

2) override setHighlighted method of UISegmentedControl

3) change background color in didUpdateFocusInContext method.

Upvotes: 2

Views: 434

Answers (2)

Haya Hashmat
Haya Hashmat

Reputation: 137

its easy to clear the background color of segment control:

yourSegment.backgroundColor = .clear

Upvotes: 0

Munzareen Atique
Munzareen Atique

Reputation: 480

From my understanding of your question, you want to change the background color same as UISegmentControl tint color. What you need to do is simply use this:

label.backgroundColor = segmentedControl.tintColor;

Hope this will help you if not try this:

You just need to give its background color to clear from storyboard. This is happening due to default background selection and default selection is as per theme. Once you set the segmentControl background color to clear you will get the required result.

Or you can do: Try to set your UISegmentcontrol background color to clear in viewDidLoad, you will get your result. I have tried this and it worked for me.

segment.backgroundColor = Color.clear;

Upvotes: 2

Related Questions