【问题标题】:How to set label according to text but i want background color also [closed]如何根据文本设置标签但我也想要背景颜色[关闭]
【发布时间】:2012-11-06 10:08:11
【问题描述】:

如何根据 text 设置 UILabel 但我希望 backGroundColor 也在其中,如果 text 小则显示背景色为黑色的小标签和文字,反之亦然。怎么办?

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

【问题讨论】:

  • 请详细说明...

标签: iphone uitextfield uilabel


【解决方案1】:

试试这个

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】:

    UILabel 适合所有文本使用 sizeToFit

    [label sizeToFit];
    

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

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

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

    [label setBackgroundColor:[UIColor blackColor]];
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        这是在我的应用中完成的,你一定喜欢这样做

            label.text = @"Some text" ;
        
                                CGSize textSize = [label.text sizeWithFont:label.font];
        
                                backView.frame=CGRectMake(startPointX, startPointY, textSize.width, 1);
        

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

        【讨论】:

          【解决方案5】:

          以下代码可能对您有所帮助

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-11-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-07-29
            • 2017-06-16
            相关资源
            最近更新 更多