イムによってUIScrollViewのとのUITableView高さを設定し、私はUIImageView
が上にある、私はUIScrollView
内部UITableView
とUIImageView
を持っている日 は、動的にiOSの開発に非常に新しいその内容
UITableView
です。コンテンツに基づいて高さを動的に取得し、その高さをテーブルの高さ制約とcontentsizeに設定する必要がありますスクロールビューの
セルはセルフサイジングであるため、セルの高さは内容によって異なります。私がこれまでにできることは、contentSize.height
というプロパティを使用して高さを取得していますが、これはestimatedRowHeight
に基づいて高さを返します。実際の高さではありません。
コード:
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
tableView.estimatedRowHeight = rowHeight
tableView.rowHeight = UITableViewAutomaticDimension
tableView.layoutIfNeeded()
tableHeight.constant = tableView.contentSize.height
scrollView.contentSize.height = imageView.bounds.height + tableView.contentSize.height
}
私が試したもの:コードに示すように、UITableView
のcontentSize.height
プロパティを使用して高さを取得
- をして前に説明しました。
各行の高さを個別に
willDisplayCell
に設定し、それをテーブルの高さ制約とスクロールビューのcontentSizeに追加します。しかし、これは実際よりも多くの行を追加するように見えます。テーブルの最後に空のセルがたくさんあります。willDisplayCell
内部コード:let cellHeight = cell.bounds.height tableHeight.constant += cellHeight scrollView.contentSize.height += cellHeight
前と同様、私は同じ結果と
cellForRowAtIndexPath
内部試みを除きます。
最初の質問は、スクロールビュー内にテーブル(スクロールビューが組み込まれています)を使用し、テーブルのスクロール機能を無効にする高さを設定する理由は何ですか?次に、あなたが求めていることをするために、あなたのテーブルデータを繰り返すforループの中で手動で 'cellForRoAtIndexPath'を呼び出す必要があります。その関数から返された各セルの高さを取得し、すべての高さを結合してグローバルテーブルの高さを取得します。しかし、最初の質問に戻ると、なぜあなたのために既に行われていることをやり直すのですか(スクロールビュー内でスクロールするテーブル)? – Putz1103
**あなたの答えは**このコンテンツをご覧ください** http://stackoverflow.com/questions/5628527/dynamically-set-uiscrollview-height-and-uitableview-height-depend-on-content –