我是iPhone开发的新手,正在寻找使用颜色资源的方法(比如在安卓中)。我想将它们应用于文本和面板背景等。
最终目标是能够切换颜色资源,同时保持代码和xib文件的完整性。这样,例如,只需在一个位置更改RGB值,就可以制作具有不同文本颜色的应用程序的多个版本。
我知道可以用这种方式切换图像资源,但还没有看到任何与颜色相似的东西。
感谢任何帮助
发布于 2011-02-08 18:49:26
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属性(显然)。
编辑:对于你想做的事情,这可能是最好的解决方案:
VJColorConstants
.+(UIColor *)prettyColor{
return UIColorFromRGB(0x4A6B82);
}
关于如何返回一个常量,有大约100个自旋,但我喜欢这个。设置好该文件后,您可以执行以下操作:
UIView.backgroundColor = [VJColorConstants prettyColor];
发布于 2011-02-08 18:45:13
嗯,我不确定我是否正确理解了你的问题,但我的建议是为颜色取一个全局常量。这样,您就可以从一个特定的位置更改它。
#define CUSTOM_COLOR [UIColor colorWithRed:0.0 green:0.5607 blue:0.8627 alpha:0.50]
发布于 2011-02-08 18:45:56
我能想到的唯一方法就是使用#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等。
https://stackoverflow.com/questions/4931897
复制相似问题