0

ユーザーの「略歴」を表示するUILabelがあります。また、ユーザーがタップするとuitextviewがポップアップ表示され、ユーザーがこのuitextviewからのテキストの追加または削除が完了すると、label.text = textview.textと言うことで、このテキストを編集できるようになります。これにより、バイオが更新されます。ラベルのテキスト。
ただし、追加または削除されたテキストの量に応じてラベルの高さを固定するようにラベルに指示する方法が必要です。これを行う方法はありますか?前もって感謝します!

NathanF

4

4 に答える 4

4
CGRect labelFrame = label.frame;
labelFrame.size = [textview.text sizeWithFont:label.font
                            constrainedToSize:CGSizeMake(label.frame.size.width, CGFLOAT_MAX)
                                lineBreakMode:label.lineBreakMode];
label.frame = labelFrame;

これにより、新しいテキストに従って(フォントと改行モードを考慮しながら)ラベル(高さ)のサイズが変更されます。

注: UILineBreakMode は 6.0 で廃止されました。代わりに NSLineBreak を使用してください。

ソース

于 2012-07-12T17:03:25.220 に答える
4

電話

[labelName sizeToFit];

新しいテキストを設定した後。また、ワードラップまたは文字ラップを次のように設定してください。

[labelName setLineBreakMode:UILineBreakModeWordWrap];

また

[labelName setLineBreakMode:UILineBreakModeCharacterWrap];

他にご不明な点がございましたら、お気軽にお問い合わせください。

于 2012-07-12T17:12:53.987 に答える
1

このメソッド「sizeWithFont」は、iOS 7 で廃止されました。代わりに、以下のメソッドを使用できます。

CGRect rect = [YourText boundingRectWithSize:CGSizeMake(labelWidth, CGFLOAT_MAX)
                                       options:NSStringDrawingUsesLineFragmentOrigin
                                       context:nil];
 NSLog(@"Height: %f",rect.size.height);

詳細については、Apple のドキュメントを参照してください。

于 2013-11-13T07:51:41.343 に答える
0

[NSString sizeWithFont:...] を使用して、ラベルで使用するテキストを測定できます。

参照: NSString のサイズを取得する方法

于 2012-07-12T17:02:23.213 に答える