そのため、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];