Подтвердить что ты не робот

Настройка фонового изображения UISegmentedControl

Итак, у меня есть следующий код для установки цвета фона сегментированного управления:

UISegmentedControl * segmentedCtrl = [[UISegmentedControl alloc] initWithFrame:CGRectMake(0, 0, 150, 35)];
[segmentedCtrl setBackgroundImage:[UIImage imageNamed:@"btn-gradient-brown"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[segmentedCtrl setBackgroundImage:[UIImage imageNamed:@"btn-gradient-brown"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[segmentedCtrl insertSegmentWithImage:[UIImage imageNamed:@"icon-home.png"] atIndex:0 animated:NO];
[segmentedCtrl insertSegmentWithImage:[UIImage imageNamed:@"icon-star.png"] atIndex:1 animated:NO];

Все работает отлично, за исключением того, что когда я нажимаю на сегмент, я вижу синюю кнопку выделенной. Как отключить эту подсветку? Вот скриншот моей проблемы:

enter image description here

4b9b3361

Ответ 1

UISegmentControl имеет разделитель между двумя сегментами. Используя следующий код, вы можете изменить фон разделителя.

[segmentedCtrl setDividerImage:[UIImage imageNamed:@"divider_selected.png"] forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[segmentedCtrl setDividerImage:[UIImage imageNamed:@"divider_normal.png"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

Где divider_selected.png - это изображение, которое вы использовали для выбранного состояния. Если divider_normal.png - это изображение, которое вы использовали для нормального состояния.

Надеюсь, это поможет....

Ответ 2

Установите одинаковые фоновые изображения для выделенного состояния:

[segmentedCtrl setBackgroundImage:[UIImage imageNamed:@"btn-gradient-brown"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];