1

UITableViewCell内にUITextViewあります。コンテンツのサイズに基づいてUITextViewの高さを設定しようとしています。私のcellForRowAtIndexPathメソッド内には、次のものがあります。

CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:@"CustomCell"];
....
cell.text.text = textString; // cell.text is the UITextView
CGRect frame = cell.text.frame;
frame.size.height = cell.text.contentSize.height;
cell.text.frame = frame;

return cell;

カスタム セルには他のオブジェクトがありますが、制約のあるものはありません。興味深いのは、テーブル ビューが最初に読み込まれるときに、UITextView のサイズが変更されないことです。ただし、スクロールダウンまたはバックアップによって別のセルが読み込まれると、UITextView は上記のコードに基づいて正しい高さにサイズ変更されます。最初のテーブルが正しくロードされないのはなぜですか。

UITextView には、デフォルトの幅と高さのサイズがあります。詳細を追加できるかどうか教えてください。私はheightForRowAtIndexPathを実装していませんが、私が行っているテストではデフォルトのセルの高さを超えていないので、これは問題になりません。

4

3 に答える 3

0

最終的にこれで動作するようになったら、試してみてください

cell.text.attributedText = [[NSAttributedString alloc]initWithString:textString];
float textViewWidth      = cell.text.frame.size.width;
[cell layoutIfNeeded];
cell.text.contentSize    = [cell.text sizeThatFits:CGSizeMake(textViewWidth, FLT_MAX)];
[cell.text sizeToFit];
于 2013-12-08T04:30:23.967 に答える