Странное поведение с UISegmentedControl и UIAppearance

Я устанавливаю внешний вид сегментированного элемента управления с помощью этих операторов в делегате приложения.

    [[UISegmentedControl appearance] setBackgroundImage:[[UIImage imageNamed:@"segmentation_normal.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0 , 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [[UISegmentedControl appearance] setBackgroundImage:[[UIImage imageNamed:@"segmentation_selected.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0 , 0, 0)] 
        forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

    [[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"segmentation_divider_NormalNormal.png"]   forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"segmentation_divider_NormalSelected.png"] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
    [[UISegmentedControl appearance] setDividerImage:[UIImage imageNamed:@"segmentation_divider_SelectedNormal.png"] forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

Результат отличный. Фоны и разделители устанавливаются правильно, когда я выбираю любой из сегментов (сегмент «Заказ» выбирается по умолчанию при первом запуске приложения). Когда я выбираю сегмент Release, как вы можете видеть ниже, все выглядит нормально.

enter image description here

Проблема заключается в том, что когда я выхожу из представления, а затем возвращаюсь в представление (я сохраняю выбранный индекс и устанавливаю его в viewDidLoad для повторного выбора сегмента), разделитель устанавливается неправильно по какой-то неизвестной причине.

enter image description here

Если я нажму на A-Z, а затем на кнопку «Отпустить», все исправится. Эта ошибка возникает только при первой загрузке представления и выбранном сегменте «Выпуск» или «А-Я». Разделитель всегда выглядит нормально, когда выбран порядок и загружается представление.

Размеры изображений: разделитель имеет ширину 2 пикселя (все 3 изображения одинакового размера), фоны имеют ширину 2 пикселя каждый.

Любые идеи или указатели будут высоко оценены, последние 10 часов я рвал на себе волосы, пытаясь найти решение для недоступного.

5
задан Asem H. 26 June 2012 в 17:35
поделиться