0

私は iPad 用のアプリを公開しており、それをユニバーサルにする作業を行っています。コンテンツに合わせてサイズを変更したい UITextView があります。TextView は、ストーリーボードを介して作成され、IBOutlet を介して参照されます。この質問への回答を読みました UITextView のサイズをそのコンテンツに合わせるにはどうすればよいですか? コードを使用してTextViewのサイズを変更しています。このコードは iPad では完全に機能しますが、iPhone で実行するとサイズが変更されません。私はこの問題に何時間も取り組んできました。

//self.speciesDescription is the TextView in Question here:

//set the text
self.speciesDescription.text=[self.modal getdescriptionForSpecies:self.plantDisplayed];

//call the method below
[self resizeTextView:self.speciesDescription];

//resizes the text view to fit the text
-(void)resizeTextView:(UITextView *)textView {
    CGRect contentFrame=textView.frame;
    contentFrame.size.height=textView.contentSize.height;
    textView.frame=contentFrame;
}

サイズ変更を試みる前に TextView で initWithFrame: を呼び出すと、問題なく動作しますが、これを行う必要がなければ、時間とコードを大幅に節約できます。とにかく StoryBoard は initWithFrame: を自動的に呼び出しませんか?

編集:今日いくつかのテストを実行したところ、textView の contentSize プロパティの幅が常に 0 で、高さが 16000 を超えていることがわかりました。

4

1 に答える 1

0

initWithCoder:ストーリーボードは、ではなくコンストラクターを使用してビューを初期化しますinitWithFrame:。カスタム初期化を行う場合は、必ずinitWithCoder:メソッド内で行ってください。

于 2013-03-23T21:37:40.577 に答える