-1

如何UILabel根据文字设置,但我backGroundColor也想在里面,如果文字很小,那么它会显示背景色为黑色和文字的背景小标签,反之亦然。怎么办?

在此处输入图像描述

在图像中,黑色背景颜色是根据动态文本来的。我想要黑色背景颜色,直到文本印度。

4

5 回答 5

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];
于 2012-11-06T10:27:19.647 回答
2

让 UILabel 适合所有文本使用 sizeToFit

[label sizeToFit];

如果您想让图片背景的大小作为标签大小,请使用 imageview

imageView.frame = CGRectMake(0, 0, label.frame.size.width, label.frame.size.height);

或者如果只想要标签的背景颜色,则使用

[label setBackgroundColor:[UIColor blackColor]];
于 2012-11-06T10:19:31.157 回答
1

计算文本的宽度并将其分配给标签框架宽度。

于 2012-11-06T10:13:50.113 回答
1

这是在我的应用程序中完成的,你必须喜欢这样做

    label.text = @"Some text" ;

                        CGSize textSize = [label.text sizeWithFont:label.font];

                        backView.frame=CGRectMake(startPointX, startPointY, textSize.width, 1);

在这里,您必须在标签背面创建一个新视图,该名称为 backview 并设置该视图的框架,然后显示它在我的应用程序中完美运行:-)

于 2012-11-06T17:47:24.913 回答
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)];
于 2012-11-06T10:21:40.473 回答