Ustawiam wygląd segmentowanej kontroli za pomocą tych instrukcji w delegacie aplikacji.Dziwne zachowanie z UISegmentedControl i 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];
Wynik jest poprawny. Tła i dzielniki są ustawione poprawnie po wybraniu dowolnego segmentu (segment zamówienia jest wybierany domyślnie po pierwszym uruchomieniu aplikacji). Kiedy wybieram segment Release, jak widać poniżej wszystko wygląda dobrze.
Problemem jest to, kiedy wychodzę z widoku, a następnie z powrotem do widoku (I zapisać wybrany indeks i ustawić go w viewDidLoad aby ponownie wybrać segment), dzielnik jest nieprawidłowo ustawiony na jakiś nieznany powód.
Jeśli dotknij a następnie A-Z Release, koryguje się. Ten błąd występuje tylko wtedy, gdy widok po raz pierwszy się załadował, a wybranym segmentem był Release lub A-Z. Dzielnik zawsze wygląda dobrze po wybraniu Zamówienia i załadowaniu widoku.
Rozmiary obrazu: dzielnik ma szerokość 2 pikseli (wszystkie 3 obrazy mają ten sam rozmiar), tła mają po 2 piksele.
Wszelkie pomysły i wskazówki byłyby bardzo cenne, od 10 godzin staram się wyciągać włosy, próbując znaleźć rozwiązanie niedostępne.
Wywołanie metody 'setNeedsDisplay' z' UISegmentedControl' po ustawieniu wybranego indeksu 'UISegmentedControl' w' viewDidLoad'. Może to rozwiąże problem. –
Nie działa. W każdym razie dzięki! –
Widzę również ten problem. Cholera :( – runmad