UIAlertView 和 UIButton 在白色背景上有白色按钮

Posted

技术标签:

【中文标题】UIAlertView 和 UIButton 在白色背景上有白色按钮【英文标题】:UIAlertView and UIButton has white buttons on white background 【发布时间】:2014-11-19 10:10:13 【问题描述】:

将开发版 iPhone 5 升级到 ios 8.1 后,UINavigationBars 和 UIAlertViews 上的所有按钮和默认标签开始以白色文本出现在屏幕上。

我尝试通过以下方式解决问题:

// UIView tints
[[UIView appearance] setTintColor:[UIColor blackColor]];
[[UIAlertView appearance] setTintColor:[UIColor blackColor]];
[[UINavigationBar appearance] setBarTintColor:[UIColor blackColor]];
[[UIBarButtonItem appearance] setTintColor:[UIColor whiteColor]];

这在大多数情况下以某种方式解决了白色按钮,但不是全部。我在收到应用内通知后出现的警报视图仍然存在问题,带有导航栏按钮和标签。

有人遇到过这个问题吗?如果可能的话有解决办法吗?

【问题讨论】:

默认为蓝色 尝试评论 [[UIBarButtonItem appearance] setTintColor:[UIColor whiteColor]]; 您可以尝试全局更改它们 [self.window setTintColor:[UIColor blackColor]];将代码放入Application delegate Radu,评论说不会改变结果。 bplat,已经尝试过了,但没有成功。 【参考方案1】:

无法自定义UIAlretView的外观:

[[UIAlertView appearance] setTintColor:[UIColor blackColor]];

查看class reference中的Apple注释:

子类化注释

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

可能的重复问题:Change tint color of UIAlertview and UIActionsheet buttons

【讨论】:

我不想自定义外观。在 8.1 中,按钮标签是白色的,而 8.0 是黑色的。我正在尝试纠正差异。

以上是关于UIAlertView 和 UIButton 在白色背景上有白色按钮的主要内容,如果未能解决你的问题,请参考以下文章

试图将 UILabel 放在自定义 UIAlertView 中的 UIButton 之上

如何从 UIAlertView 获取取消和调用用户操作

如何取消并从UIAlertView调用用户操作

UIAlertView 内存问题

自定义 UIAlertView 上的按钮

iOS 5 UIAlertView 自定义 [重复]