iPhone的色彩资源?

时间:2011-02-08 10:28:14

标签: iphone colors


我是iPhone开发的新手,正在寻找使用色彩资源的方式(比如在Android中)。我想将它们应用于文本和面板背景等。

最终目标是能够在保持代码和xib文件完整的同时切换颜色资源。通过这种方式,只需在一个位置更改rgb值,就可以制作具有不同文本颜色的应用程序的多个版本。

我知道可以用这种方式切换图像资源,但没有看到与颜色类似的东西。

感谢任何帮助

3 个答案:

答案 0 :(得分:1)

UIColor课程非常棒。

它有很多漂亮的,理想的颜色可供选择。例如:

[UIColor clearColor];
[UIColor redColor];
[UIColor greenColor];
[UIColor blueColor];

[UIColor lightTextColor];
[UIColor groupTableViewBackgroundColor];

最重要的是,你可以通过一些数学和一些宏来生成各种漂亮的东西。这个允许您从8位十六进制值生成颜色(即0x000000为黑色)。

#define UIColorFromRGB(rgbValue) [UIColor 
    colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 
    green:((float)((rgbValue & 0xFF00) >> 8))/255.0
    blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

您还可以从图像加载UIColor对象。

[UIColor colorWithPatternImage:[UIImage imageNamed:@"myImage.png]];

要使用任何UIColor对象,您只需执行以下操作:

UITextField.textColor = [UIColor magentaColor];

请注意,您指定的属性必须是UIColor属性(显然)。

编辑:对于您想要做的事情,这可能是最佳解决方案:

  1. 创建新的代码文件。称之为VJColorConstants
  2. 为您要使用的每种颜色执行此操作:
  3. +(UIColor *)prettyColor{
        return UIColorFromRGB(0x4A6B82);
    }

    关于如何返回常量大约有100个旋转,但我喜欢那个。设置完该文件后,您可以执行以下操作:

    UIView.backgroundColor = [VJColorConstants prettyColor];

答案 1 :(得分:0)

嗯,我不确定我是否理解你的问题,但我的建议是采用全局常数来表示颜色。这样你可以从一个特定的loacation改变它。

#define CUSTOM_COLOR [UIColor colorWithRed:0.0 green:0.5607 blue:0.8627 alpha:0.50]

答案 2 :(得分:0)

我能想到的唯一方法是使用#define预处理器宏。但是你必须在代码中设置所有颜色。您必须将所有视图连接到IBOutlets等。

#if VERSION_PINK
#define kBackGroundColor [UIColor colorWithRed:255/255.0f green:105/255.0f blue:180/255.0f alpha:1]
#elif VERSION_GREEN
#define kBackGroundColor [UIColor colorWithRed:155/255.0f green:255/255.0f blue:155/255.0f alpha:1]
#else
#define kBackGroundColor [UIColor colorWithRed:150/255.0f green:150/255.0f blue:150/255.0f alpha:1]
#endif

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backGroundColor = kBackGroundColor;
}

然后,您将在应用的构建设置中的预处理器宏中设置VERSION_PINK = 1,VERSION_GREEN = 1,依此类推。