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

Re-use the same UIColor in multiple files

我需要在一堆文件中使用相同的颜色,所以我决定制作 "global variables" 来完成它。我创建了一个名为 ColrClassNSObject class 并实现了一些 class 方法,如下所示:

+(UIColor *) returnRedColor {

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

    return redColr;

}

所以我的问题是,还有其他方法可以做到这一点吗?我想使用最合理的解决方案,但不确定这些 class 方法是否是最好的。我错了吗,这是一个很好的解决方案?或者有什么更好的解决方案吗?

您可以在 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];

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

/* ... */
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];