自動レイアウトを使用してtableHeaderView(UITableView)の高さを設定するにはどうすればよいですか?
過去3、4時間、これで頭を壁にぶつけてきましたが、理解できないようです。フルスクリーンのUITableViewを内部に持つUIViewControllerがあり(画面上に他のものがあるため、UITableViewControllerを使用できません)、tableHeaderViewのサイズを自動レイアウトで変更したいと考えています。言うまでもなく、それは協力的ではありません。 以下のスクリーンショットを参照してください。 OverviewLabel(「ここに概要情報を一覧表示する」テキストなど)には動的コンテンツがあるため、自動レイアウトを使用してサイズを変更し、スーパービューにします。階層内の視差テーブルビューのすぐ下にあるtableHeaderViewを除いて、すべてのサイズを適切に変更できます。 そのヘッダービューのサイズを変更する唯一の方法は、次のコードを使用してプログラムで行うことです。 CGRect headerFrame = self.headerView.frame; headerFrame.size.height = headerFrameHeight; self.headerView.frame = headerFrame; [self.listTableView setTableHeaderView:self.headerView]; この場合、headerFrameHeightは、次のようにtableViewHeaderの高さを手動で計算します(innerHeaderViewは白い領域、つまり2番目の「ビュー」です。headerViewはtableHeaderViewです)。 CGFloat startingY = self.innerHeaderView.frame.origin.y + self.overviewLabel.frame.origin.y; CGRect overviewSize = [self.overviewLabel.text boundingRectWithSize:CGSizeMake(290.f, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: self.overviewLabel.font} context:nil]; CGFloat overviewHeight = overviewSize.size.height; CGFloat overviewPadding = ([self.overviewLabel.text length] > 0) ? 10 : 0; // If …