web-dev-qa-db-ja.com

iOS7でUIAlertViewのボタンテキストの色を変更するにはどうすればよいですか?

iOS7では一般的な色合いが導入されました。 UIAlertViewも有効な範囲にあると思いますが、実際にはtintColorはUIAlertViewで機能するようには見えません。 (タップ可能なボタンのテキストの色)

警告ビューの色合いを変更することはできますか?可能であれば、それを変更する方法は?

19
Eonil

残念ながら、アラートビューの外観をカスタマイズすることはできません。ボタンのテキストの色を変更することはできません。

IAlertViewクラスリファレンス :に明確に記載されています。

UIAlertViewクラスは、そのまま使用することを目的としており、サブクラス化をサポートしていません。このクラスのビュー階層はプライベートであり、変更しないでください。

更新:

質問はiOS7に関するものでしたが、現在UIAlertViewは非推奨です。UIAlertControllerの場合、ビューの色合いの色を変更するだけです。

    let alert = UIAlertController(title: "Gimme a break",
                                message: "For God sake its iOS7 question!",
                         preferredStyle: .alert)
    alert.view.tintColor = UIColor.red

この質問を確認することも役立ちます: iOS9でUIAlertControllerボタンのテキストの色を変更するには?

27
null

[[UIView appearance] setTintColor:[UIColor redColor]];に言及している以前の回答は機能するはずですが、このコードは、UIAlertViewの色合いの色だけを変更したい場合よりもはるかにうまく機能しています。

この方法でコンポーネントを狙うことができますiOS <9

[[UIView appearanceWhenContainedIn:[UIAlertView class], nil] setTintColor:[UIColor redColor]];
[[UIView appearanceWhenContainedIn:[UIAlertController class], nil] setTintColor:[UIColor redColor]];

そしてiOS> 9の場合

[[UIView appearanceWhenContainedInInstancesOfClasses:@[[UIAlertView class]]] setTintColor:[UIColor redColor]];
[[UIView appearanceWhenContainedInInstancesOfClasses:@[[UIAlertController class]]] setTintColor:[UIColor redColor]];
3
Kévin Renella

UIActionSheetは、この方法でボタンの色を変更することもできます。

[[UIView appearance] setTintColor:[UIColor redColor]];
2
answer-huang