Настройка UISegmentedControl в iOS 5

Вот моя проблема. Я настраиваю UISegmentedControl, устанавливая изображения фона и разделителя следующим образом:

[[UISegmentedControl appearance] setDividerImage:segmentUnselectedUnselected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:segmentSelectedUnselected forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:segUnselectedSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

Когда я пытаюсь сделать 1-й сегментированный выбранным в viewDidLoad

self.segmentedControl.selectedIndex = 1;

, я получаю следующую странную вещь:

enter image description here

вместо:

enter image description here

Кто-нибудь знает, является ли это ошибкой, и как я могу сообщить об ошибке? Если нет, что может быть не так с моим кодом?

27
задан yuji 8 March 2012 в 18:01
поделиться

2 ответа

Вы пытались установить изображения с изменяемым размером?

Например:

UIImage *segmentSelected = [[UIImage imageNamed:@"SegmentSelectedImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
1
ответ дан 28 November 2019 в 05:53
поделиться

У меня была та же проблема, и я решил ее другим способом. Я только что прокомментировал эту строку кода:

self.pageController.segmentedControlStyle = UISegmentedControlStyleBar;

И сегментный бар изменил его вид в нормальное состояние.

0
ответ дан 28 November 2019 в 05:53
поделиться