5

背景と仕切りの画像を使用して をカスタマイズしていUISegmentedControlます。ただし、セグメント コントロールの分割イメージと背景イメージの間にスペースが表示されます。

これはスペースを示すスクリーンショットです

ここに画像の説明を入力

そして、これがセグメント画像を設定するために使用しているコードです

UIImage *selectedImage = [[UIImage imageNamed:@"segcontrol_selectround.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)];
UIImage *unselectedImage = [[UIImage imageNamed:@"segcontrol_unselectround.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)];
UIImage *leftSelected = [UIImage imageNamed:@"segcontrol_leftselected.png"];
UIImage *rightSelected = [UIImage imageNamed:@"segcontrol_rightselected.png"];
UIImage *neitherSelected = [UIImage imageNamed:@"segcontrol_bothunselected.png"];

[segment setBackgroundImage:unselectedImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[segment setBackgroundImage:selectedImage forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[segment setDividerImage:leftSelected forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[segment setDividerImage:rightSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[segment setDividerImage:neitherSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

すべての仕切りの画像を確認しましたが、それらはすべて同じ幅で、透明なピクセルは含まれていません。

セグメント化されたコントロールからこれらのスペースを削除するにはどうすればよいですか?

4

1 に答える 1

3

leftSelected区切り線 ( 、rightselected、および)に使用する画像neitherselectedがすべて同じ幅であることを確認してください。多くの場合neitherselected、線が中央にあるため、他の線よりも 1pt 幅が広くなっています。それらはすべて同じである必要があります!

于 2012-06-12T18:22:01.487 に答える