2

2行の静的セット(ストーリーボードで作成)を含むテーブルビューがあります。サイズが動的に生成されるテキストボックスを含む特定のUITableViewCellがあります。含まれているUITableViewCellの高さも動的に設定したいのですが、UITableViewCellの.frameの設定が機能していないようです。tableView:heightForRowAtIndexPathを使用せずに、プログラムでこれを行った人はいますか?

現在のコード:

CGSize maximumLabelSize = CGSizeMake(296,9999);
CGSize expectedLabelSize = [self.place.details sizeWithFont:self.descriptionLabel.font 
                                  constrainedToSize:maximumLabelSize 
                                      lineBreakMode:self.descriptionLabel.lineBreakMode]; 

CGRect labelFrame = self.descriptionLabel.frame;
labelFrame.size.height = expectedLabelSize.height;
// this does not change the height of the UITableViewCell....
self.descriptionTableViewCell.frame = labelFrame;
4

1 に答える 1

2

の高さに関係なく気付いたように、そのインデックスパスの'行のUITableViewCell高さにクリップされます。UITableViewと呼ばれる頃tableView:cellForRowAtIndexPath:には、列の高さはすでにレイアウトされています。tableView:heightForRowAtIndexPath:これが意図されているものであるため、使用してください。重要な点は、テーブルビューは、スクロールビュー、スクロールバーなどを設定するために、すべての行の高さを知る必要があるということです。一方、画面に表示されているものの実際のセルのみが必要です。UITableViewDelegateがこのように機能する理由の詳細については、この回答を参照してください。

于 2012-08-16T04:26:50.060 に答える