0

そのため、UISegmentedControl をカスタマイズした後、すべてが台無しになり、ラベルがずれて、どこから来たのかわからない白い縦線が表示されます。ディバイダも中心からずれています。黒い線が 80 ピクセルの画像の 40 ~ 41 ピクセルにあることを確認したので、中央に配置する必要があります。私が間違ったことをしたいですか、それとも以前に誰かがこれを経験したことがありますか?

カスタマイズ前: ここに画像の説明を入力

カスタマイズ後:

注: 仕切りの画像は、互いに水平方向に反転しています。

ここに画像の説明を入力

ここに画像の説明を入力

コード:

UIImage *un_sel = [UIImage imageNamed:@"divider-un-sel"];
UIImage *sel_un = [UIImage imageNamed:@"divider-sel-un"];

[_segmentControl setDividerImage:un_sel forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

[_segmentControl setDividerImage:sel_un forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

UIImage *normal = [[UIImage imageNamed:@"segment-normal"] stretchableImageWithLeftCapWidth:20 topCapHeight:0];
UIImage *selected = [[UIImage imageNamed:@"segment-selected"] stretchableImageWithLeftCapWidth:20 topCapHeight:0];

[_segmentControl setBackgroundImage:normal forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[_segmentControl setBackgroundImage:selected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
4

1 に答える 1