我正在尝试通过为其分配值来设置textColor
的{{1}}。
我早期的程序
UITextView
但稍后,当我有
时textView.textColor = 0x000000;
弹出一个致命的错误说:“ARC禁止将'int'隐式转换为'UIColor *'。”
如何将我的int转换为UIColor以正确设置文本颜色?为什么它适用于0x000000而不是0x888888?
答案 0 :(得分:11)
作为你提交答案的标准答案这不是答案UIColorFromRGB
是一个在@implementation
上面定义的宏
#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];
然后你就可以使用
了textView.textColor = UIColorFromRGB(0x888888);
你可以使用UIColor
的属性来设置目标c中文本bg-color等的颜色
答案 1 :(得分:1)
有必要使用
textView.textColor = [UIColor colorWithRed:<#(CGFloat)#> green:<#(CGFloat)#> blue:<#(CGFloat)#> alpha:<#(CGFloat)#>];
试一试:
- (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];
}
...
textView.textColor = [self UIColorFromRGB:0x888888];
答案 2 :(得分:0)
我发现你可以使用UIColorFromRGB()
将其转换为UIColor。
e.g。
textView.textColor = UIColorFromRGB(0x888888);
答案 3 :(得分:0)
您可以按照以下步骤执行此操作:
使用HexToRGB将十六进制值转换为RGB。
然后通过执行以下操作更改textview的文本颜色:
textview.textColor = [UIColor colorWithRed:244/255.00f
green:133/255.00f blue:116/255.00f alpha:1.0f]; // values are just an example
答案 4 :(得分:0)
快速扩展版本
public extension UIColor {
public convenience init<T>(rgbValue: T, alpha: CGFloat = 1) where T: BinaryInteger {
guard rgbValue > 0 else {
self.init(red: 0, green: 0, blue: 0, alpha: alpha)
return
}
guard rgbValue < 0xFFFFFF else {
self.init(red: 1, green: 1, blue: 1, alpha: alpha)
return
}
let r: CGFloat = CGFloat(((rgbValue & 0xFF0000) >> 16) / 0xFF)
let g: CGFloat = CGFloat((rgbValue & 0x00FF00) >> 8 / 0xFF)
let b: CGFloat = CGFloat((rgbValue & 0x0000FF) / 0xFF)
self.init(red: r, green: g, blue: b, alpha: alpha)
}
}
用法:
let white = UIColor(rgbValue: 16777215)
let red = UIColor(rgbValue: 16711680)
let green = UIColor(rgbValue: 0x00FF00)
let blue = UIColor(rgbValue: 0x0000FF)
let yellow = UIColor(rgbValue: 0xFFFF00)
let black = UIColor(rgbValue: 0)