0

オンラインで検索してみましたが、私の問題に対する明確な答えが見つからなかったため、専門家のアドバイスを求めるようになりました。2 つのラベルが付いたビューがあります。どちらのラベルも、plist とは異なる文字列の長さを表示します。

アプリを実行すると、文字列の長さに応じてラベルが他のラベルと重なってしまいます。

以下は私の問題のスクリーンショットです

ここに画像の説明を入力

4

4 に答える 4

1

secondLabel のオリジンを変更する必要があります。

CGRect frame = secondLabel.frame;
frame.origin.y= firstLabel.frame.origin.y + firstLabel.frame.size.height;
[secondLabel setFrame:frame];
于 2013-09-25T06:53:44.683 に答える
0

より良いオプションはUITextView代わりに使用することですUILabelが、それでもラベルを使用したい場合は、以下のコードを使用してテキストの高さを見つけ、その高さに応じてラベルのフレームを設定できます

NSString *text = [arr objectAtIndex:indexPath.row];
CGSize constraint = CGSizeMake(contentWidth - (CELL_CONTENT_MARGIN * 2), 20000.0f);
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:20] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];
CGFloat height = MAX(size.height, 44.0f);

ここで contentWidth はラベルの幅で、CELL_CONTENT_MARGIN = 10;

于 2013-09-25T06:46:58.273 に答える
-1

ええ、あなたは多くの方法でそれを解決できます。

たとえば、最初のラベルに目的のテキストを入力してから、

[label1 sizeToFit]

この呼び出しにより、テキストの長さに合わせて適切なサイズのラベルが作成されます。これで、最初のラベルの後に 2 番目のラベルを配置できます。

label2.frame = CGRectMake (x, label1.frame.size.height + ..., .....)

それが役に立てば幸い!

于 2013-09-25T06:47:35.120 に答える