Objective C 中的颜色变量

Nic*_*k B -4 user-interface colors objective-c ios

如何在 Obj C 中设置和重用颜色变量?我正在尝试设置一个可重复使用的颜色值,如这个问题所示:

使用可变 iOS 更改背景颜色

但我不成功。

 UIColor *lightGrayHeader = [UIColor colorWithRed:246/255.f green:239/255.f blue:239/255.f alpha:1.0];

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

返回错误:“初始化器元素不是编译时常量。”

感谢您的想法!

Ian*_*ald 5

您定义的是局部变量。它的使用方式如下:

UIColor *lightGrayHeader = [UIColor colorWithRed:246/255.f green:239/255.f blue:239/255.f alpha:1.0];
self.view.backgroundColor = lightGrayHeader;
Run Code Online (Sandbox Code Playgroud)

如果你想使用静态方法来UIColor获取颜色,你可以这样做:

@interface UIColor (MyColours)
+ (instancetype)lightGrayHeader;
@end

@implementation UIColor (MyColours)
+ (instancetype)lightGrayHeader {
  return [self  colorWithRed:246/255.f green:239/255.f blue:239/255.f alpha:1.0];
}
@end
Run Code Online (Sandbox Code Playgroud)

然后只要导入UIColor (MyColours)标头,就可以使用:

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