objective-c – 用于设置RGB颜色的宏比UIColor好吗?
发布时间:2020-12-15 01:45:55 所属栏目:百科 来源:网络整理
导读:我的头文件中有这个宏: #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] 我在我的.m文件中使用此
我的头文件中有这个宏:
#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] 我在我的.m文件中使用此类似的东西: cell.textColor = UIColorFromRGB(0x663333); 所以我想问一下每个人都这样更好还是我应该使用这种方法: cell.textColor = [UIColor colorWithRed:66/255.0 green:33/255.0 blue:33/255.0 alpha:1.0]; 哪一个更好的方法? 解决方法
中间地带可能是您的最佳选择.您可以定义常规C或Objective-C函数来执行宏现在正在执行的操作:
// As a C function: UIColor* UIColorFromRGB(NSInteger rgbValue) { return [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]; } // As an Objective-C function: - (UIColor *)UIColorFromRGB:(NSInteger)rgbValue { return [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]; } 但是,如果您决定坚持使用宏,则应将括号放在rgbValue的任何位置.如果我决定用你的宏调用: UIColorFromRGB(0xFF0000 + 0x00CC00 + 0x000099); 你可能会遇到麻烦. 最后一点代码当然是最具可读性的,但可能是最不便携的 – 你不能简单地在你的程序中的任何地方调用它. 总而言之,我建议将宏重构为一个函数并将其保留在该函数中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |