更改 UIAlertView 中的按钮标题颜色

Posted

技术标签:

【中文标题】更改 UIAlertView 中的按钮标题颜色【英文标题】:Change button title color in UIAlertView 【发布时间】:2014-06-11 08:05:52 【问题描述】:

如何更改UIAlertView 按钮标题的颜色。

我想要红色的标题Ok

【问题讨论】:

问个简单的问题,这是 ios7 还是 iOS8?我不确定它们在 iOS8 中的外观,但 UIAlertViews 已替换为 UIAlertController How to change button text color of UIAlertView in iOS7?的可能重复 【参考方案1】:

其实你可以在iOS8中改变UIAlertController的view的tint color。

UIAlertController *alertController = ....
[alertController.view setTintColor:[UIColor greenColor]];

【讨论】:

如果您继承 UIAlertController 并在 viewDidLoad 中设置 tintColor,则此方法有效。【参考方案2】:

对于 Swift 3,使用:

alertController.view.tintColor = UIColor.red

之后你展示了你的警报控制器

【讨论】:

在出现警报控制器之前它也对我有用 “之后”不是必需的。 :)【参考方案3】:

如果您使用的是UIAlertController,Travis Weerts 的答案应该可以工作。对于使用UIAlertView 的用户,您可以使用UIView 外观设置。

您可以通过这种方式在 iOS 上瞄准警报组件:

[[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]];

【讨论】:

【参考方案4】:

最好的方法(也是最简单的)如下:

alert = UIAlertController(title: "foo", message: "foo", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction.... foo
...foo
alert.view.backgroundColor = UIColor.orangeColor()
alert.view.tintColor = UIColor.orangeColor()
alert.view.layer.cornerRadius = 0.5 * alert.view.bounds.size.width

它还在背景中提供了“圆形褪色橙色圆圈”的加号效果。

希望对你有帮助

【讨论】:

【参考方案5】:

无法自定义警报视图的外观。

欲了解更多信息UIAlertView Class Reference:

UIAlertView 类旨在按原样使用,而不是 支持子类化。此类的视图层次结构是私有的,并且 不得修改。

更多信息: How to change button text color of UIAlertView in iOS7?

【讨论】:

从***.com/questions/19193367/…复制的答案 @NitinGohel 虽然它们看起来更简单,但我认为它不能以任何其他方式表达,因为这基本上来自 Apple 文档。 但确实是从我粘贴的链接中复制的。 @NitinGohel 我想,但我真的不认为它可以用其他任何方式表达,一句话确实涵盖了整个事情并且绝对是一个正确的答案,所以我不认为它应该只是评论。我想如果用户从您提供的链接中引用它会更好。【参考方案6】:

试试这个:

[[UIView appearance] setTintColor:[UIColor whiteColor]];

【讨论】:

【参考方案7】:

您无法更改警报视图。如果你真的需要,你可以使用custom ones。

【讨论】:

以上是关于更改 UIAlertView 中的按钮标题颜色的主要内容,如果未能解决你的问题,请参考以下文章

快速设置 UIAlertView 按钮的颜色

UIAlertView 更改 UITabbar 项目选定的颜色

更改语义 UI 按钮组件中的文本颜色

更改 UIAlertView 的字体颜色

在 UILocalNotification 中更改 UIAlertView 的颜色

MUI - 更改主题中的按钮文本颜色