我是iPhone开发的新手,正在寻找使用色彩资源的方式(比如在Android中)。我想将它们应用于文本和面板背景等。
最终目标是能够在保持代码和xib文件完整的同时切换颜色资源。通过这种方式,只需在一个位置更改rgb值,就可以制作具有不同文本颜色的应用程序的多个版本。
我知道可以用这种方式切换图像资源,但没有看到与颜色类似的东西。
感谢任何帮助
答案 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属性(显然)。
编辑:对于您想要做的事情,这可能是最佳解决方案:
VJColorConstants
。+(UIColor *)prettyColor{
return UIColorFromRGB(0x4A6B82);
}
关于如何返回常量大约有100个旋转,但我喜欢那个。设置完该文件后,您可以执行以下操作:
UIView.backgroundColor = [VJColorConstants prettyColor];
答案 1 :(得分:0)
#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,依此类推。