在多个文件中重复使用相同的UIColor

时间:2015-01-16 19:56:46

标签: ios objective-c uicolor

我需要在一堆文件中使用相同的颜色,所以我决定制作“全局变量”。我创建了一个名为NSObject的{​​{1}}类,并实现了一些类方法:

ColrClass

所以我的问题是,有没有其他方法可以做同样的事情?我想使用最合理的解决方案,但不确定这些类方法是否最好。我错了,这是一个很好的解决方案吗?或者有更好的解决方案吗?

2 个答案:

答案 0 :(得分:3)

您可以在UIColor上创建一个类别来执行此操作。文件名看起来像UIColor+ColorClass。该类别如下所示:

的UIColor + ColorClass.h

#import <UIKit/UIKit.h>

@interface UIColor (ColorClass)
+ (UIColor *)returnRedColor;
@end

的UIColor + ColorClass.m

#import "UIColor+ColorClass.h"

@implementation UIColor (ColorClass)
+ (UIColor *)returnRedColor 
{
    return [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];
}
@end

然后在您的ProjectName-prefix.pch中,您可以#import "UIColor+ColorClass.h在整个项目中使用此方法。方法调用将是[UIColor returnRedColor];

答案 1 :(得分:0)

在这种情况下,我更喜欢使用单例实例而不是类方法。我认为它更好,因为你可以在必要时覆盖这些方法。

/* ... */
static ColrClass* sharedInstance = nil;
// Get the shared instance and create it if necessary.
+(ColrClass*) sharedInstance {
    if ( sharedInstance == nil ) {
        sharedInstance = [ColrClass new];
    }
    return sharedInstance;
}
/* ... */

-(UIColor *) returnRedColor {

    UIColor *redColr = [UIColor colorWithRed:0 green:0.433 blue:0.804 alpha:1];

    return redColr;

}

并使用如下:

[[ColrClass sharedInstance] returnRedColor];