我正在通過應用程序委託中的這些語句設置分段控件的外觀。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];
結果很好。選擇任何分段時,背景和分隔線都會正確設置(應用程序第一次啓動時,默認選擇「分段」)。當我選擇發佈細分時,您可以在下面看到一切都很正常。
問題是,當我出去的視圖然後返回到視圖(I存儲所選擇的索引並將其設置在viewDidLoad中重新選擇段),所述分頻器被設置不正確某些未知原因。
如果我點擊的A-Z,然後鬆開,它是否自行解決。此錯誤僅在視圖第一次加載並且所選片段爲釋放或A-Z時纔會發生。選擇「訂單」並加載視圖時,分隔線總是很好看。
圖像大小:分隔符是2px寬(全部3個圖像大小相同),每個背景寬度爲2 px。
任何想法或指針將高度讚賞,我一直在過去10個小時拉我的頭髮,試圖找到解決方案沒有可用。
在'viewDidLoad'中設置'UISegmentedControl'的選定索引後,調用'UISegmentedControl'的'setNeedsDisplay'方法。也許這將解決這個問題。 –
沒有工作。雖然謝謝! –
我也看到了這個問題。該死的:( – runmad