如何在Interface Builder和代码之间共享常量?

Unf*_*ter 5 iphone interface constants builder

我想知道是否有一种方法可以在Interface Builder中使用常量,以避免在不同的地方手动设置相同的颜色(例如,有时这可能是一项非常繁琐的工作......)

目前我在代码中设置颜色并使用#define设置颜色,但显然IB不能使用#define ...

ric*_*and -1

我认为最简单的方法是在 UIColor 类上创建一个类别并在其上创建一个类方法。例如:

将其放入头文件中(例如 UIColor+CustomColors.h):

@interface UIColor ( CustomColors )
+ (UIColor *)myCustomColor;
@end
Run Code Online (Sandbox Code Playgroud)

将其放入实现文件中(例如 UIColor+CustomColors.m)

@implementation UIColor ( CustomColors )
+ (UIColor *)myCustomColor
{
   return [UIColor colorWithRed:0.2 green:0.5 blue:0.2 alpha:1.0];
}
@end
Run Code Online (Sandbox Code Playgroud)

然后您可以在代码中的任何位置访问类方法,如下所示:

...
self.view.backgroundColor = [UIColor myCustomColor];
...
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅Apple 有关类别的文档。

或者,您可以通过系统调色板保存颜色样本。为此,您只需调用系统调色板,选择一种颜色并将其拖到颜色网格中即可。

这些颜色现在不仅可以在您创建的每个 Interface Builder 文档中使用,而且可以在使用系统调色板的任何应用程序中使用。

调色板 http://img.skitch.com/20091030-dhh3tnfw5d8hkynyr7e5q3amwg.png