Seltsames Verhalten mit UISegmentedControl und UIAppearance
Ich stelle das Erscheinungsbild des segmentierten Steuerelements über diese Anweisungen im App-Delegaten ein.
[[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];
Das Ergebnis ist gut. Hintergründe und Trennlinien werden korrekt festgelegt, wenn ich eines der Segmente auswähle (das Ordnungssegment wird standardmäßig ausgewählt, wenn die App zum ersten Mal gestartet wird). Wenn ich das Release-Segment auswähle, wie Sie unten sehen können, sieht alles gut aus.
Das Problem ist, wenn ich die Ansicht verlasse und dann zurück zur Ansicht gehe (ich speichere den ausgewählten Index und setze ihn in viewDidLoad, um das Segment erneut auszuwählen), der Teiler ist aus einem unbekannten Grund falsch eingestellt.
Wenn ich auf A-Z und dann auf Loslassen tippe, korrigiert es sich von selbst. Dieser Fehler tritt nur auf, wenn die Ansicht zuerst geladen wurde und das ausgewählte Segment entweder Release oder A-Z war. Der Teiler sieht immer gut aus, wenn Reihenfolge ausgewählt ist und die Ansicht geladen wird.
Bildgrößen: Der Teiler ist 2 Pixel breit (alle 3 Bilder sind gleich groß), die Hintergründe sind jeweils 2 Pixel breit.
Irgendwelche Ideen oder Hinweise wären sehr dankbar, ich habe mir in den letzten 10 Stunden die Haare gezogen, um eine Lösung zu finden, die nicht verfügbar ist.