-1

テキストUILabelに応じて設定する方法ですが、テキストが小さい場合は、背景色が黒でテキストが小さい背景ラベルが表示され、その逆も同様です。どうすればよいですか?backGroundColor

ここに画像の説明を入力

画像では、動的テキストに応じて黒い背景色が使用されています。インドのテキストまで黒の背景色が必要です。

4

5 に答える 5

2

UILabel がすべてのテキストに収まるようにするには sizeToFit を使用します

[label sizeToFit];

写真の背景のサイズをラベルのサイズに合わせたい場合は、イメージビューを取得します

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

または、ラベルの背景色のみが必要な場合は、使用します

[label setBackgroundColor:[UIColor blackColor]];
于 2012-11-06T10:19:31.157 に答える
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 に答える
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 に答える
1

テキストの幅を計算し、ラベル フレーム幅に割り当てます。

于 2012-11-06T10:13:50.113 に答える
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 に答える