0

だから私は次のコードを持っています:

  UISegmentedControl * segmentedCtrl = [[UISegmentedControl alloc] initWithFrame:CGRectMake(0, 0, 150, 35)];
    [segmentedCtrl setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"duck.png"]]];


 [segmentedCtrl setSegmentedControlStyle:UISegmentedControlStyleBar];

そして、これが私が使用しようとしているアヒルの画像です:

ここに画像の説明を入力

なぜそれが機能しないのか、誰でも教えてくれます。あらゆる種類の画像で試しましたが、機能しません。参考までに、セグメント化されたコントロールにアヒルの背景を持たせようとしていません。これは、colorWithPatternImage を使用した setTint がどのような種類の画像でも機能しないことを説明するためのものです。

4

5 に答える 5

0
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:nil];
    [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"up_button.png"] atIndex:0 animated:YES];
    [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"down_button.png"] atIndex:1 animated:YES];
于 2012-05-24T11:29:17.697 に答える
0

UISegmentedControl(他のすべての UIKit コントロールと同様に) は、パターンの色を色合いとしてサポートしていません。色合いは基本的に光沢のあるグラデーションを作成するために使用されますが、これは任意のパターンで非常に異なる方法で行う必要があります。

背景の外観をカスタマイズするには、代わりにsetBackgroundImage:forState:barMetrics:andを使用しsetDividerImage:forLeftSegmentState:rightSegmentState:barMetrics:ます (もちろん、適切な画像では、パターンはこれらに適していません)。

于 2012-05-24T10:21:08.960 に答える
0

UISegmentedControl の tintColor は、コントロールで使用されるグラデーションを計算するための基礎としてのみ使用されます。グラデーション画像をうまく作成できないため、その一部を使用しているだけです。必要なのは UISegmentedControl のカスタム サブクラスのようです。

于 2012-05-24T11:13:16.157 に答える
0

幅1pxの画像を試しましたか?使用している画像が大きすぎてパターンを作成できません

于 2012-05-24T07:34:25.777 に答える
-1

まず Photochop で画像を開いて色の RGB 値を取得し、その値を使用します。

セグメント コントロールの背景色

于 2012-05-24T08:14:01.593 に答える