0

各セグメントのカスタム画像を使用してUISegmentedControlを作成しています。プログラム的に、これは私と一緒に働いています:

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithFrame:CGRectMake(30, 0, 170, 31)];
segmentedControl.tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"ebd-toolbar-bg"]];
[segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"eatIcon"] atIndex:0 animated:NO];
[segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"buyIcon"] atIndex:1 animated:NO];
[segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"doIcon"] atIndex:2 animated:NO];
segmentedControl.contentMode = UIViewContentModeScaleToFill;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;

ただし、セグメントのカスタム画像はセグメント全体を塗りつぶすわけではなく、背景が少し表示されます。問題は、背景画像が同じ色ではないため、以下に示すように奇妙に見えることです。各セグメントの周りに小さな黒が見えます。

これ

使ってみUIViewContentModeScaleToFillましたが、うまくいきません。セグメントの画像サイズを設定する方法はありますか?もしそうなら、どのように?そして、それはどのくらいのサイズでなければなりませんか?

4

1 に答える 1

0

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsetsメソッドを使用してみてください。あなたの場合、それは次のようになります。

[segmentedControl insertSegmentWithImage:[[UIImage imageNamed:@"eatIcon"] resizableImageWithCapInsets:UIEdgeInsetsMake(0,10,0,10)] atIndex:0 animated:NO];

UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right);関数の正しい値を決定する必要があることに注意してください

于 2013-01-06T14:47:23.610 に答える