iOS7 引入了通用的 tint-color。我认为UIAlertView
也在有效范围内,但实际上 tintColor 看起来不适用于UIAlertView
. (用于可点击的按钮文本颜色)
是否可以更改警报视图的色调?如果可能,如何改变它?
iOS7 引入了通用的 tint-color。我认为UIAlertView
也在有效范围内,但实际上 tintColor 看起来不适用于UIAlertView
. (用于可点击的按钮文本颜色)
是否可以更改警报视图的色调?如果可能,如何改变它?
不幸的是,您无法自定义警报视图的外观,也无法更改按钮文本颜色。
UIAlertView 类参考中清楚地提到了它:
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
检查这个问题也很有帮助:How to change UIAlertController button text color in iOS9?
UIActionSheet
也可以通过这种方式改变按钮的颜色。
[[UIView appearance] setTintColor:[UIColor redColor]];
前面提到的答案[[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]];