为什么我的UIButtons在控制器转换时会在iOS 7中改变颜色?

时间:2015-03-14 13:17:25

标签: cocoa-touch ios7

所以我有一些UIButtons。它们在启用时为蓝色,在禁用时为灰色,如我所料。

enter image description here

如果我从头版转到当前比赛,并且出现如下网络错误:

enter image description here

我致电[self.navigationController popViewControllerAnimated:YES];返回主页,我在iOS 7,iPhone 4上得到了这个:

enter image description here

灰色按钮,但它们有效。所以我知道他们没有残疾。这不会发生在iOS 8,iPad Mini上。

1 个答案:

答案 0 :(得分:1)

您可以使用iOS 7中引入的tintAdjustmentMode属性修复此问题:

  

当此属性的值为UIViewTintAdjustmentModeDimmed时,   修改tintColor属性的值以提供灰色   外观

     

如果系统在子视图层次结构中找不到非默认值   查询此属性时,值为   UIViewTintAdjustmentModeNormal。

     

当此属性的值更改时(由视图的值更改)   改变或通过其超级视图的一个值改变) - 系统   调用tintColorDidChange方法以允许视图刷新它   渲染。

     

- 来自UIView Class Reference

当某些叠加视图(例如UIAlertView等)可见时,它们实际上会将此属性更改为UIViewTintAdjustmentModeDimmed。您可以通过以下方式为整个tintAdjustmentMode(以及子视图层次结构)设置UIWindow来解决此问题:

self.window.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;