0

ビューに UILabel があり、コンテンツに基づいてサイズを変更する必要がありますが、そうではありません。その中に複数行のコンテンツがあります。[label sizeToFit]+ を試しlabel.numberOfLines= 0ました。

UILabel の制約はありません。

代わりに UITextView も使用しようとしましたが、フォントは 13 のままで、17 では望んでいません。

これは現在動作するコードです:

UILabel *textLabel2 = [[UILabel alloc] initWithFrame:CGRectMake(20, 158, self.view.bounds.size.width-40, 550)];
textLabel2.text = textString;
textLabel2.font = [UIFont fontWithName:@"Helvetica Neue" size:17];
textLabel2.numberOfLines = 0;
[textLabel2 sizeToFit];
[self.scroller addSubview:textLabel2];
4

1 に答える 1

1

UILabelプログラムで作成する場合:

このコードは、最初にUIlabelのテキストを設定し、次にテキストの幅を取得します

UILabel *label = [[UILabel alloc] init];
//set label backgroundColor so you can see the label width changes according to text
[label setBackgroundColor:[UIColor redColor]];
//edit you label text
[label setText:@"very longgggg text"];

//get width of you text and set you font size to 17.0
CGFloat width =  [label.text sizeWithFont:[UIFont systemFontOfSize:17.0f]].width;

//set you label frame
label.frame = CGRectMake(10, 200, width, 30);

//add label to you view
[self.view addSubview:label];

作成していない場合はUILabel、プログラムで行を削除し、alloc initアウトレットを xib またはストーリーボードに接続します。

于 2014-08-22T14:00:55.080 に答える