Objective c 在项目中全局声明UIColor
可能重复:Objective c 在项目中全局声明UIColor,objective-c,ios,xcode,uicolor,Objective C,Ios,Xcode,Uicolor,可能重复: 我想在我的应用程序中使用一些颜色。有一种方法可以在整个应用程序中使用UIColor,而不是在每个实例或每个viewController中创建UIColor 或者使用colorConstants.h头文件来定义我想要使用的每种颜色是否明智 i、 e 提前谢谢 宏更方便,因为它只在一个地方定义 但每次使用它时,它仍然会创建一个新实例,因为宏只是预处理器的文本替换 如果你想拥有一个唯一的实例,你必须使用FOUNDATION\u EXPORT(意思是extern) 在public.h文件中
我想在我的应用程序中使用一些颜色。有一种方法可以在整个应用程序中使用UIColor,而不是在每个实例或每个viewController中创建UIColor 或者使用colorConstants.h头文件来定义我想要使用的每种颜色是否明智 i、 e
提前谢谢 宏更方便,因为它只在一个地方定义 但每次使用它时,它仍然会创建一个新实例,因为宏只是预处理器的文本替换 如果你想拥有一个唯一的实例,你必须使用
FOUNDATION\u EXPORT
(意思是extern
)
在public.h文件中,声明以下内容:
FOUNDATION_EXPORT UIColor * scarlet;
这将告诉编译器,scarlet
变量(类型为UIColor
)将在某个点存在(当程序链接时)。因此,它将允许您使用它 然后需要在.m文件中创建该变量。
您不能直接分配它的值,因为它是一个运行时值,所以只需将其设置为nil:
UIColor * scarlet = nil;
然后,在程序中的某个点(可能在应用程序的委托中),设置其值:
scarlet = [ [ UIColor ... ] retain ];
不要忘了保留它,因为它是一个全局变量,需要在程序的整个生命周期中存在
这样,您只有一个实例,可以从任何地方访问。我会在UIColor上使用一个类别。例如:
// In UIColor+ScarletColor.h
@interface UIColor (ScarletColor)
+ (UIColor*)scarletColor;
@end
// In UIColor+ScarletColor.m
@implementation UIColor (ScarletColor)
+ (UIColor*)scarletColor {
return [UIColor colorWithRed:207.0/255.0 green:47.0/255.0 blue:40.0/255.0 alpha:1];
}
@end
当您想要使用颜色时,您只需执行以下操作:
#import "UIColor+ScarletColor.h"
....
UIColor *scarlet = [UIColor scarletColor];
希望能有帮助 +1非常直接和简单。应该已经想到了:-)提示:将
#import“UIColor+ScarletColor.h”
放在Prefix.pch
文件中,您可以在任何地方访问它。不显式导入
#import "UIColor+ScarletColor.h"
....
UIColor *scarlet = [UIColor scarletColor];