Objective c #定义指令澄清
抱歉,如果这是一个糟糕的问题,但是 我想创建一个UIColor的快捷方式,如下所示Objective c #定义指令澄清,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,抱歉,如果这是一个糟糕的问题,但是 我想创建一个UIColor的快捷方式,如下所示 [UIColor colorWithRed:(88.0f/255.0f) green:(201.0f/255.0f) blue:(234.0f/255.0f) alpha:1] 我能不能用一个#define来定义它,这样我就可以键入一些快捷方式?我试过了,但我想我的符号可能不正确 如果#define仅用于常量,或者由于某种原因不适用于这种情况,那么还有其他方法可以简化该方法吗 谢谢 define只是一个美化的文
[UIColor colorWithRed:(88.0f/255.0f) green:(201.0f/255.0f) blue:(234.0f/255.0f) alpha:1]
我能不能用一个#define来定义它,这样我就可以键入一些快捷方式?我试过了,但我想我的符号可能不正确
如果#define仅用于常量,或者由于某种原因不适用于这种情况,那么还有其他方法可以简化该方法吗
谢谢 define只是一个美化的文本替换系统。如果您这样定义:
#define key value
然后,即使在编译器可以执行任何操作之前,预处理器也会将每次出现的键
替换为值
。所以你定义什么并不重要。你可以使用任何东西作为你的价值,所以你可以做一些事情,比如
#define kMyColor [UIColor colorWithRed:(88.0f/255.0f) green:(201.0f/255.0f) blue:(234.0f/255.0f) alpha:1]
但在这种情况下,您可能应该使用静态常量变量:
static const UIColor *myColor = [UIColor colorWithRed:(88.0f/255.0f) green:(201.0f/255.0f) blue:(234.0f/255.0f) alpha:1];
#定义只是一个美化的文本替换系统。如果您这样定义:
#define key value
然后,即使在编译器可以执行任何操作之前,预处理器也会将每次出现的键
替换为值
。所以你定义什么并不重要。你可以使用任何东西作为你的价值,所以你可以做一些事情,比如
#define kMyColor [UIColor colorWithRed:(88.0f/255.0f) green:(201.0f/255.0f) blue:(234.0f/255.0f) alpha:1]
但在这种情况下,您可能应该使用静态常量变量:
static const UIColor *myColor = [UIColor colorWithRed:(88.0f/255.0f) green:(201.0f/255.0f) blue:(234.0f/255.0f) alpha:1];
Intead使用:
[UIColor colorWithRed:(88.0f/255.0f) green:(201.0f/255.0f) blue:(234.0f/255.0f) alpha:1]
使用以下命令:
RGBA(0.35,0.79,0.92,1)
请看本教程:
Intead使用:
[UIColor colorWithRed:(88.0f/255.0f) green:(201.0f/255.0f) blue:(234.0f/255.0f) alpha:1]
使用以下命令:
RGBA(0.35,0.79,0.92,1)
请看本教程:
.在UIColor上创建一个类别,并定义一个新的类方法(如blackColor、whiteColor等)。这样,您的代码至少符合现有样式
+(UIColor*)myColor
{
return [UIColor colorWithRed:(88.0f/255.0f) green:(201.0f/255.0f) blue:(234.0f/255.0f) alpha:1];
}
在UIColor上创建一个类别并定义一个新的类方法(如blackColor、whiteColor等)。这样,您的代码至少符合现有样式
+(UIColor*)myColor
{
return [UIColor colorWithRed:(88.0f/255.0f) green:(201.0f/255.0f) blue:(234.0f/255.0f) alpha:1];
}
根据您的问题文本,不太清楚您想要的快捷方式是什么-一种单一颜色,即使用值创建RGBA颜色
[0..255]
鼓手回答第一个问题,贾斯汀·布回答第二个问题
我想提出一个解决方案,既适用于以下两种情况:
创建一个类别,可以涵盖这两个方面
,用于包装您现在使用的方法[UIColor COLOR WITH255VALUESWITHRED:128绿色:35蓝色:40阿尔法:255]
- 创建一个UIColor类方法,该方法将UIColor对象存储在静态NSMutableDictionary中,其中包含它们的名称和计数器部分,您可以调用like
[UIColor registeredColorWithName:@“activeForegroundColor”]
#import <UIKit/UIKit.h>
@interface UIColor (Register)
+(void)registerColor:(UIColor *)color
forName:(NSString *)name;
+(UIColor *)registeredColorForName:(NSString *)name;
+(void)unregisterColorForName:(NSString *)name;
@end
用法:登记册 通路 注销
根据您的问题文本,不太清楚您想要的快捷方式是什么-一种单一颜色,即使用值创建RGBA颜色
[0..255]
鼓手回答第一个问题,贾斯汀·布回答第二个问题
我想提出一个解决方案,既适用于以下两种情况:
创建一个类别,可以涵盖这两个方面
,用于包装您现在使用的方法[UIColor COLOR WITH255VALUESWITHRED:128绿色:35蓝色:40阿尔法:255]
- 创建一个UIColor类方法,该方法将UIColor对象存储在静态NSMutableDictionary中,其中包含它们的名称和计数器部分,您可以调用like
[UIColor registeredColorWithName:@“activeForegroundColor”]
#import <UIKit/UIKit.h>
@interface UIColor (Register)
+(void)registerColor:(UIColor *)color
forName:(NSString *)name;
+(UIColor *)registeredColorForName:(NSString *)name;
+(void)unregisterColorForName:(NSString *)name;
@end
用法:登记册 通路 注销
如果您愿意,这里有一个十六进制RGB的定义:
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
用法:
UIColor *color = UIColorFromRGB(0xe8e600); //0xe8e600 hex representation...
如果您愿意,这里有一个十六进制RGB的定义:
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
用法:
UIColor *color = UIColorFromRGB(0xe8e600); //0xe8e600 hex representation...
myColor
必须分配给方法或函数的内部,但这肯定比定义一个看起来像常量但实际上是调用要好。myColor
必须分配给方法或函数的内部,但这肯定比定义一个看起来像常数但实际上是调用要好。请参考我的答案,了解类似但更动态的定义approach@vikingosegundo好主意!请参考我的答案,以获得类似但更具活力的答案approach@vikingosegundo好主意!