我有一个Common.h
,其定义如下:
// Get UIColor from Hex value
#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]
#define CellTextColor UIColorFromRGB((uint32_t) 0x217EB5)
我希望能够使用CellTextColor
进行Swift中的着色。但它不允许我运行宏。只有当我#define value @"string"
时,它才能在Swift中运行。
我还需要做些什么吗?
我阅读了以下链接:
答案 0 :(得分:3)
具体答案可能是UIColor的扩展:
extension UIColor {
class func fromRGB(rgb:UInt32) -> UIColor {
return UIColor(
red: CGFloat((rgb & 0xFF0000) >> 16) / 255.0,
green: CGFloat((rgb & 0x00FF00) >> 8) / 255.0,
blue: CGFloat(rgb & 0x0000FF) / 255.0,
alpha: CGFloat(1.0)
)
}
class var cellTextColor: UIColor {
return UIColor.fromRGB(0x217eb5)
}
}
允许您使用:
let color = UIColor.cellTextColor
更通用的答案是,它总是非常依赖于宏是什么以及它如何被使用。