为存在文本的UILabel框架绘制背景颜色或#39;

时间:2014-07-18 19:48:16

标签: ios uilabel

我试图找出一种方法来获取UILabel的背景颜色,以便仅在文本存在的地方绘制。我计划使用 drawTextInRect ,但我需要弄清楚如何跟踪文字界限

- (void) drawTextInRect:(CGRect)rect
{
 /* do some custom drawings here */

 [super drawTextInRect:rect];
}

enter image description here

有没有人知道如何完成这项工作?感谢

1 个答案:

答案 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;