17

UISwitchiOS 3で、アプリのスイッチ要素を作成するために使用しています。デフォルトの色は青に設定されていますが、色を茶色に変更したいと思います。

UISwitchiOS 3の要素に別の色を選択するにはどうすればよいですか?

UISwitch最新のiOSアプリ(iOS 5以降)で要素に別の色を選択するにはどうすればよいですか?

4

6 に答える 6

43

最後に、iOS 5 では、プロパティでスイッチの色を変更できますonTintColor

UISwitch *s = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
s.on = YES;
s.onTintColor = [UIColor redColor];
[self.view addSubview:s];
[s release];

これを生成します:

ここに画像の説明を入力してください

于 2011-12-10T10:42:35.310 に答える
2

現在、UISwitch のテキスト値は On/Off または 0/1 に制限されています。色合いを使用して色をカスタマイズできます。さらにカスタマイズするために、完全にカスタム化されたソリューションを使用して、上記に投稿されているようなものをお勧めします

元。[mySwitch setOnTintColor:[UIColor colorWithRed:0 green:175.0/255.0 blue:176.0/255.0 alpha:1.0]];

ソース: http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5

編集: iOS3 の場合、カスタム実装に限定されます。2 つのボタンをカスタム イメージと交換することをお勧めします。それ以降の iOS バージョンでは、より多くの制御と組み込みのカスタマイズ オプションが提供されます。

于 2012-09-18T13:29:01.427 に答える
1

コントロールの背景色を変更できるように作成したカスタム UISwitch コントロールを見てください。同じ方法を使用して、テキスト、フォント、またはテキストの色を非常に簡単に変更できます。

http://www.homick.com/posts/custom-uiswitch-control

このコードは GitHub で入手でき、コントロールが使用する 3 つの異なる PNG ファイルを作成するために使用される PSD が含まれています。psd の内容を変更して、好きな形式で PNG ファイルを再作成できます。それらをコントロールに交換してください。

これにより、オレンジとブルーだけでなく、より多くのオプションが提供されます。

于 2009-11-13T14:15:57.723 に答える
-5

最新の iOS XX バージョンについては、最近関連性がないため、回答をスキップしてください。まだここ?iOS 3 ではできません。しかし、ご存知のように…人々はランクのためにここに着陸し、コメントには他のバージョンやものが含まれているので…</p>

5 番目の iOS リリースでは、これを行うための文書化された方法が許可されるようになりました: プロパティを使用しますonTintColor

UISwitch *s = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
s.on = YES;
s.onTintColor = [UIColor redColor];
[self.view addSubview:s];
[s release];

これを生産する

色に見えるようにリクエストされた物です

編集:すべての回答に対して同じことをしないのに、誰かが回答をロールバックして質問のみに制限する理由がわかりません。

さらに編集: iOS 3 では、文書化されていない機能を使用する必要がありました。以前はここにリンクがありましたが、壊れていました。その場合、色が変更されたためにアプリが拒否される可能性があります。

これは、次のようなもので始まります。これで、他の場所で見つけることができます。

UISwitch *aSwitch = [[UISwitch alloc] initWithFrame:someRectangle];
[aSwitch setAlternateColors:YES];
//Do something with aSwitch
[aSwitch release];

お勧めできません。そして、それは不人気であることが判明しました。

于 2009-11-12T06:58:42.137 に答える