22

オフのときは次のようになります。

ここに画像の説明を入力

私はもっ​​と灰色の背景を好みますが。本当にUIImageViewを使用する必要がありますか?

4

6 に答える 6

53

iOS7 UISwitch の塗りつぶしの色を変更する方法を次に示します。

まず、QuartzCore をインポートする必要があります。

#import <QuartzCore/QuartzCore.h>

次に、背景色を設定し、UISwitch の角を丸くします。

UISwitch *mySwitch = [[UISwitch alloc] initWithFrame:CGRectMake(0.0, 0.0, 51.0, 31.0)];
mySwitch.backgroundColor = [UIColor redColor];
mySwitch.layer.cornerRadius = 16.0; // you must import QuartzCore to do this.
[self addSubview:mySwitch];

これにより、カスタムのオフ (背景) 色を持つ UISwitch が得られます。

これが誰かを助けることを願っています:)

于 2013-11-18T03:41:26.943 に答える
17

setOnTintColorのプロパティをUISwitch希望の色に設定できます。

于 2013-12-03T12:45:55.727 に答える
4

のオフ フィル カラーを変更するための API サポートはありませんUISwitch

を調整するtintColorとアウトラインのみに影響し、 を調整するbackgroundColorと、丸い境界の外側の部分を含むフレーム全体に影響します。

その背後に適切な形状の不透明を配置するか、より簡単に、オフの塗りつぶし色を設定できるMBSwitchUIViewなどのカスタム オープン ソース実装を使用する必要があります。

于 2013-10-04T18:22:10.613 に答える
3

[UIColor colorWithPatternImage] を使用して、画像を背景として使用することもできます。

mySwitch.onTintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"toggle-bg-on"]];
mySwitch.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"toggle-bg-off"]];
于 2014-03-14T13:09:17.183 に答える