如何根据文字设置 UILabel
,但我还想要 backGroundColor
,如果文字很小,然后会显示背景颜色为黑色的背景小标签和文字,反之亦然。怎么办?
在图像中,黑色背景颜色根据动态文本显示。我希望黑色背景颜色直到文本印度。
答案 0 :(得分:2)
使UILabel适合所有文本使用sizeToFit
[label sizeToFit];
如果您想让图片背景大小为标签尺寸,请拍摄图像视图
imageView.frame = CGRectMake(0, 0, label.frame.size.width, label.frame.size.height);
或者如果只想要标签的背景颜色,请使用
[label setBackgroundColor:[UIColor blackColor]];
答案 1 :(得分:2)
试试这个
NSString *sample = @"...";
CGSize txtSz = [sample sizeWithFont:[UIFont fontWithName: @"Helvetica" size: 16]];
CGRect lblFrame = CGRectMake(10,50, txtSz.width, txtSz.height);
yourLabel.frame = lblFrame;
yourLabel.backgroundColor = [UIColor blackColor];
答案 2 :(得分:1)
计算文本的宽度并将其指定给标签框架宽度。
答案 3 :(得分:1)
这是在我的应用程序中完成的,你必须喜欢这样做
label.text = @"Some text" ;
CGSize textSize = [label.text sizeWithFont:label.font];
backView.frame=CGRectMake(startPointX, startPointY, textSize.width, 1);
在这里你必须在标签背面创建一个新视图,该名称是backview并设置该视图的框架,然后显示它在我的应用程序中完美运行: - )
答案 4 :(得分:0)
以下代码可能会帮助您
UILabel *biotitlelb = [[UILabel alloc]initWithFrame:CGRectMake(0,0,100,16)];
[biotitlelb setTextColor:[UIColor whiteColor]];
[biotitlelb setBackgroundColor:[UIColor blackColor]];
biotitlelb.textAlignment = UITextAlignmentLeft;
biotitlelb.font = [UIFont fontWithName:@"ArialMT" size:12];
biotitlelb.text = @"sometext";
CGSize textSize = [biotitlelb.text sizeWithFont:[UIFont fontWithName:@"ArialMT" size:12]];
CGFloat strikeWidth = textSize.width;
[biotitlelb setframe:CGRectMake(0,0,strikeWidth,16)];