首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >iPhone的颜色资源?

iPhone的颜色资源?
EN

Stack Overflow用户
提问于 2011-02-08 18:28:14
回答 3查看 401关注 0票数 0

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

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

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

感谢任何帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-08 18:49:26

UIColor类非常棒。

它有许多漂亮的、令人向往的开箱即用的颜色。例如:

代码语言:javascript
代码运行次数:0
运行
复制
[UIColor clearColor];
[UIColor redColor];
[UIColor greenColor];
[UIColor blueColor];

[UIColor lightTextColor];
[UIColor groupTableViewBackgroundColor];

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

代码语言:javascript
代码运行次数:0
运行
复制
#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对象。

代码语言:javascript
代码运行次数:0
运行
复制
[UIColor colorWithPatternImage:[UIImage imageNamed:@"myImage.png]];

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

代码语言:javascript
代码运行次数:0
运行
复制
UITextField.textColor = [UIColor magentaColor];

只需注意,您要分配的属性必须是UIColor属性(显然)。

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

  1. 创建一个新的代码文件。对于要使用的每种颜色,将其命名为类似于VJColorConstants.
  2. Do this的名称:

代码语言:javascript
代码运行次数:0
运行
复制
+(UIColor *)prettyColor{
    return UIColorFromRGB(0x4A6B82);
}

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

代码语言:javascript
代码运行次数:0
运行
复制
UIView.backgroundColor = [VJColorConstants prettyColor];
票数 1
EN

Stack Overflow用户

发布于 2011-02-08 18:45:13

嗯,我不确定我是否正确理解了你的问题,但我的建议是为颜色取一个全局常量。这样,您就可以从一个特定的位置更改它。

代码语言:javascript
代码运行次数:0
运行
复制
#define CUSTOM_COLOR [UIColor colorWithRed:0.0 green:0.5607 blue:0.8627 alpha:0.50]
票数 0
EN

Stack Overflow用户

发布于 2011-02-08 18:45:56

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

代码语言:javascript
代码运行次数:0
运行
复制
#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等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4931897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档