1

Rubymotionを使用してiOSアプリを作成しています。ビューの1つで、UIsegmentedcontrollerを使用していますが、正常に動作します。

どうすればカスタマイズできますか。背景全体(これは機能しません)にカスタム背景画像を使用し、各ボタン(これは機能します)に画像を使用する必要があります。

これは私の現在のコードです:

options = ["Selected","Unselected"]
    segment = UISegmentedControl.alloc.initWithItems(options)
    segment.addTarget(self, action: :'open:', forControlEvents:UIControlEventValueChanged)
    segment.frame = [[0, 0],[320, 40]]
    segment.segmentedControlStyle = 7
    segment.selectedSegmentIndex = 0
    segment.setImage(button, forSegmentAtIndex:0)
    segment.setImage(button2, forSegmentAtIndex:1)

私はこのコードで試しました:

segment.apperance.setBackgroundImage(button, forState:UIControlStateNormal , forBarMetrics:UIBarMetricsDefault)

segment.setBackgroundImage(button, forState:UIControlStateSelected , forBarMetrics:UIBarMetricsDefault)

しかし、そうすると、次のエラーが発生します。

undefined method `appearance' for #<UISegmentedControl:0x9655a90> (NoMethodError)

私も外見なしで試しましたが、それから私は得ました:

undefined method `setBackgroundImage' for #<UISegmentedControl:0x946db70> (NoMethodError)

アップデート

これを試しましたが、背景に画像が表示されません。

segment.setBackgroundImage(background, forState:UIControlStateNormal, barMetrics:UIBarMetricsDefault)
4

1 に答える 1

2

使用する setBackgroundImage:forState:barMetrics:

特定の状態とバーの指標の背景画像を設定します。

詳細については、Apple.Developerのドキュメントをご覧ください。

サンプルコード:

ここから撮影

[[UISegmentedControl appearance] setDividerImage:segmentUnselectedUnselected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:segmentSelectedUnselected forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setDividerImage:segUnselectedSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
于 2012-12-06T13:29:38.990 に答える