如何在代码中实现自定义颜色方法

时间:2013-10-19 20:11:18

标签: objective-c uicolor objective-c-category

我创建了一个包含“customColor”代码的类,我希望将其实现到我的代码中,这样我就可以输入buttonOne.backgroundColor = [UIColor customColor]

在.h文件中,我有

+ (UIColor*) customColor;

在.m文件中,我有

+ (UIColor*) customColor {
    return [UIColor colorWithRed:0.643 green:0.643 blue:0.643 alpha:1];
}

但是当我转到“ViewController.m”并输入

buttonOne.backgroundColor = [UIColor customColor]

我收到错误说

  

选择器customColor

没有已知的类方法

我已导入.h文件。我错过了一步吗?

1 个答案:

答案 0 :(得分:4)

基本上你是在尝试创建一个类别而没有正确地向编译器声明这是UIColor的类别。以下是如何创建类别的示例:


将新的catagory文件创建为新文件> Cocoa Touch> Objective-C category

我将我的例子命名为UIColor+CustomColorCatagory

UIColor+CustomColorCatagory.h中,将其更改为:

#import <UIKit/UIKit.h>

@interface UIColor (CustomColorCatagory)   //This line is one of the most important ones - it tells the complier your extending the normal set of methods on UIColor
+ (UIColor *)customColor;

@end

UIColor+CustomColorCatagory.m中,将其更改为:

#import "UIColor+CustomColorCatagory.h"

@implementation UIColor (CustomColorCatagory)
+ (UIColor *)customColor {
    return [UIColor colorWithRed:0.643 green:0.643 blue:0.643 alpha:1];
}
@end

然后在您要使用此方法的地方添加#import "UIColor+CustomColorCatagory.h" 简单地说:self.view.backgroundColor = [UIColor customColor];