如何根据文字设置标签,但我也想要背景颜色

时间:2012-11-06 10:08:11

标签: iphone uitextfield uilabel

如何根据文字设置 UILabel ,但我还想要 backGroundColor ,如果文字很小,然后会显示背景颜色为黑色的背景小标签和文字,反之亦然。怎么办?

enter image description here

在图像中,黑色背景颜色根据动态文本显示。我希望黑色背景颜色直到文本印度。

5 个答案:

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