Вот моя проблема. Я настраиваю 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;
, я получаю следующую странную вещь:
вместо:
Кто-нибудь знает, является ли это ошибкой, и как я могу сообщить об ошибке? Если нет, что может быть не так с моим кодом?
Вы пытались установить изображения с изменяемым размером?
Например:
UIImage *segmentSelected = [[UIImage imageNamed:@"SegmentSelectedImage"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
У меня была та же проблема, и я решил ее другим способом. Я только что прокомментировал эту строку кода:
self.pageController.segmentedControlStyle = UISegmentedControlStyleBar;
И сегментный бар изменил его вид в нормальное состояние.