我试图找出一种方法来获取UILabel的背景颜色,以便仅在文本存在的地方绘制。我计划使用 drawTextInRect
,但我需要弄清楚如何跟踪文字界限
- (void) drawTextInRect:(CGRect)rect
{
/* do some custom drawings here */
[super drawTextInRect:rect];
}
有没有人知道如何完成这项工作?感谢
答案 0 :(得分:3)
在标签中使用属性字符串:
NSAttributedString * text =
[[NSAttributedString alloc]initWithString:@"This is a tring"
attributes:@{NSBackgroundColorAttributeName : [UIColor greenColor]}];
_label.attributedText = text;
如果您希望它是透明的,请设置颜色的alpha值<你还应该将opaque设置为NO。
NSAttributedString * text =
[[NSAttributedString alloc]initWithString:@"This is a tring."
attributes:@{NSBackgroundColorAttributeName : [UIColor colorWithRed:0 green:1 blue:0 alpha:0.2]}];
_label.opaque = NO;
_label.attributedText = text;