0

UITextViewを取得して、コンテンツに合わせて動的にサイズを変更しようとしています。テキストビューの高さが100になることもあれば700になることもあります。

私がこれまで試したすべてがうまくいきませんでした。

私はで、viewDidLoadそしてまたで以下を試しましたviewDidLayoutSubviews。コードは次のとおりです。

CGRect frameDesc = self.descriptionDeal.frame;
frameDesc.size.height = self.descriptionDeal.contentSize.height;
self.descriptionDeal.frame = frameDesc;

self.descriptionDeal.backgroundColor = [UIColor redColor];

ビューのサイズを確認できるように背景色を追加しましたが、コンテンツのサイズに合わせていません。

私も試しました:

    [self.descriptionDeal sizeToFit];

また、それが何かに影響を与えているかどうかはわかりませんが、UITextViewがレイアウトされているストーリーでは、サイズがそこに設定されています。上記のコードはそれを上書きすると思いましたが、何かが正しく機能していません。

助けてくれてありがとう

4

2 に答える 2

1

テキストビューのデリゲートのtextViewDidChange: メソッドでサイズを変更する必要があります

https://stackoverflow.com/a/14956351/1311910を使用して、適切な高さを取得します。

于 2013-02-19T11:28:15.107 に答える
0

ビューに文字列を表示するために必要な寸法を取得するために使用できる次の文字列メソッドを試してください。これらのメソッドのいずれかから取得した CGSize に基づいて、テキストビューのフレームを変更できます。以前のバージョンの iOS をサポートするためにプロジェクトで自動レイアウトを使用しない場合は、これを使用してください。

- (CGSize)sizeWithFont:(UIFont *)font; // Uses NSLineBreakByWordWrapping
- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(NSLineBreakMode)lineBreakMode;
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size; // Uses NSLineBreakModeWordWrap
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode; // NSTextAlignment is not needed to determine size
于 2013-02-19T11:27:38.200 に答える