我正在使用Mac OS X El Capitan 10.11.2,Xcode 7.1.1和iOS 7作为iOS应用程序的部署目标。iOS:禁用UIButton的标题颜色
当前,我想要设置一个UIButton的样式,以便它的文本和背景(颜色/图像)灰显/禁用时降低了Alpha。我开始使用.xib编辑器中的控件进行游戏,并开始更改文本颜色,背景颜色和按钮图像。另外,在每次更改上述参数之后,我也改变了启用状态。结果令人惊讶。如果按钮的标题颜色设置为默认值 - 蓝色,则在Xcode中禁用.xib编辑器中的按钮会导致按钮标题变灰,这非常棒 - 无需手动将标题设置为禁用状态。当按钮的标题颜色设置为与默认值不同的值(绿色让我们假设)时,会出现令人尴尬的行为 - 无灰度,降低alpha分量或任何其他视觉禁用效果。
结果 - 如果按钮的标题颜色与默认标题颜色不同,应该手动应用可视化禁用。这是非常糟糕的部分行为。使用UILabel时没有观察到这种情况。无论文字颜色,禁用标签时禁用灰色显示的外观。 UIButton在给定图像时的行为与预期相同 - 当按钮被禁用时,图像的alpha值设置为较低的值。如果UIButton和UILabel被禁用,则不会更改背景颜色。
我想要的是使用iOS自动禁用的用户界面外观,以便在所有UI元素禁用时都具有视觉一致性。我不想使用:
UIButton setTitleColor: (UIColor*) color forState: (UIControlState) state;
因为不想手动指定为禁用状态的颜色,而是使用自动的iOS颜色,图像等交替处于禁用状态。
此外,在某些回归之上是指定的错误行为,还是?
好的,这适用于UIButton。那么UILabel呢?它不支持文字颜色的说明。只有普通('textColor')和高亮('highlightTextColor')文字颜色作为独立的属性提供。为什么在使用与默认不同的颜色时,标签的自动生成的禁用UI未被破坏? – Ivan
按钮是一个控件('UIControl'),标签不是。他们的API完全不同。 – rmaddy
好的,有没有推荐的iOS应用程序风格化方式 - 比方说使用CSS,或者应该手动风格化每个控件或子类,他/她需要的每种类型的控件,以便自动化它的风格化? – Ivan