iOS 6 へのアップグレード以降、カスタマイズを行ったすべての UISegmentedControl で表示の問題が発生しています。こんな感じです。
iOS 5 ではまったく問題なく、iPhone 4 (iOS 5) シミュレーターで実行すると正しく表示されます。
これは私が使用しているコードです:
UIImage *segmentUnselected = [[UIImage imageNamed:@"segmentedcontrol"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 15)];
UIImage *segmentSelected = [[UIImage imageNamed:@"segmentedcontrol_selected"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 15, 0, 15)];
[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected forState:UIControlStateDisabled barMetrics:UIBarMetricsDefault];
UIImage *segmentDivider = [UIImage imageNamed:@"segmentedcontrol_divider"];
[[UISegmentedControl appearance] setDividerImage:segmentDivider
forLeftSegmentState:UIControlStateNormal
rightSegmentState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:segmentDivider
forLeftSegmentState:UIControlStateDisabled
rightSegmentState:UIControlStateDisabled
barMetrics:UIBarMetricsDefault];
私が使用している画像は問題ないはずです。通常のサイズと @2x の 2 つのサイズがあります。それについて詳細を教えてほしい場合は教えてください。
[アップデート]
「通常の」imageNamed:@""でキャップインセットのサイズ変更可能な画像を削除すると、問題が解決しました。