如何为UI元素定义和使用中央调色板?

时间:2013-08-09 15:19:07

标签: ios

我想在一个地方定义一个调色板,然后只使用对它的引用,这样我就可以在这一个地方更改调色板,而无需触摸所有UI元素来修改颜色。

澄清一下,这就是我在android中实现同样的目的:

  • 定义colors.xml:
<resources>
    <color name="main_text">#ffffffff</color>
</resources>
  • 使用如下颜色:
<TextView ...
          android:text="foobar"
          android:textColor="@color/main_text"
        />

在iOS SDK上,UI通常不是用手写的xml来描述的。但我想知道是否有任何方法可以在IB中使用某种颜色的引用,然后再重新定义颜色。 (我也不需要在xcode预览中看到最终颜色。)

到目前为止,我找到的唯一解决方案是使用视图标记:为每个元素定义一个标记,在运行时获取这些标记,转换为正确的类并开始应用颜色。这非常麻烦。

1 个答案:

答案 0 :(得分:2)

我会为UIColor类创建一个类别。这样,您可以声明其他颜色,如下所示:

+ (UIColor *)lightBlueColor
{
    return [UIColor colorWithRed:132.0f / 255.0f green:207.0f / 255.0f blue:218.0f / 255.0f alpha:1.0f];
}

然后像使用任何其他颜色一样使用它们:

[self.view setBackgroundColor:[UIColor lightBlueColor]];

否则,您可以考虑继承您要重新着色的UI元素。这样,您可以在initWithCoder:中进行颜色修改,然后在Interface Builder中引用子类。