0

私は iOS 6 と Xcode 4.6 を使用しており、Interface Builder を使用UITextViewしてscrollbar view.

のスクロールを無効にして、コンテンツ全体を表示できるようText Viewに のサイズを動的に変更したいと考えてText Viewいます。

コントローラーで次のコードを試しました:

- (void)viewWillAppear:(BOOL)animated {
    CGRect frame = _description.frame;
    frame.size.height = _description.contentSize.height;
    _description.frame = frame;
}

_descriptionにバインドされていUITextViewます。

このコードでは、フレームの位置(0, 0)は で、サイズは(0, 0)です。結果として、サイズは変更されませんUITextView

また、これらの関数でビューのサイズを変更しようとしましたが、成功しませんでした:

- (void)viewDidLoad;
- (void)viewDidLayoutSubviews;

それが機能する唯一の機能(0より大きいサイズのフレーム)は次のとおりです。

- (void)viewDidAppear:(BOOL)animated

ただし、この時点でビューは既に表示されており、Text Viewサイズ変更を確認できます (これは私が望んでいるものではありません。ユーザーがビューを見る前にサイズを変更したいのです)。

フレームが正しくない理由と、UITextView'sこの問題を解決する方法を教えてください。

参考までに、このビューはTableViewCell(ストーリーボードで構成された) による push メソッドで自動的に表示されます。

ご協力ありがとうございました!

4

1 に答える 1

4

Cezarのコメントのおかげで答えが見つかりました。

答えはここで見つけることができますStoryboard でサブビューのフレームを取得しています。

私は実際に電話しました:

[_view layoutSubviews];

の私の親のビューで:

- (void) viewDidLayoutSubviews;

フレームにアクセスする前にメソッドを実行すると機能します。

于 2013-07-28T13:10:41.420 に答える