1. ホーム
  2. ios

[解決済み] UITextViewのサイズをコンテンツに合わせるには?

2022-03-19 05:35:47

質問

のサイズを調整する良い方法はありますか? UITextView は、そのコンテンツに適合させることができますか?例えば UITextView には、1行のテキストが含まれています。

"Hello world"

その後、もう一行テキストを追加しています。

"Goodbye world"

Cocoa Touchで rect テキストビューのすべての行を保持し、それに応じて親ビューを調整することができます。

別の例として、Calendar アプリケーションのイベントのメモ欄を見てみましょう。 UITextView を含む)を拡張して、メモの文字列のすべての行を格納することができます。

どのように解決するのですか?

iOS 6.1、iOS 7の両方で動作します。

- (void)textViewDidChange:(UITextView *)textView
{
    CGFloat fixedWidth = textView.frame.size.width;
    CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
    CGRect newFrame = textView.frame;
    newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
    textView.frame = newFrame;
}

または Swift で (iOS 11 の Swift 4.1 で動作)

let fixedWidth = textView.frame.size.width
let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
textView.frame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)

もしiOS 6.1への対応を望むのであれば、それも必要です。

textview.scrollEnabled = NO;