私はスクロールビューとその上にテーブルビュー(スクロール無効)があるページをデザインしています。これを行うために、この質問の回答を参照しました- ITableViewをスクロールできないようにして、すべてのセルに対応するように高さを調整します 、しかし成功しませんでした。
ビューの階層と提供された制約-
-メインビュー
-スクロールビュー
メインビュー(0,0,0,0)のすべての側面に固定、マージンへの制約
-コンテンツビュー
スクロールビューに固定(0,0,0,0)、メインビューと同じ幅、メインビューと同じ高さ(優先度-250)
-コンテンツビュー内のテーブルビュー
スクロールが無効になっている、すべての側面から50ポイントのスペースがある、高さ(> =)、下の間隔50(関係> =)。高さを動的に上げるために、等しいよりも大きい値を設定しました。
テーブルビューにデータを入力するときは、次のようにコードを使用します。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableview.dequeueReusableCellWithIdentifier("cellreuse", forIndexPath: indexPath)
cell.textLabel?.text = name[indexPath.row]
tableview.frame.size = tableview.contentSize
return cell
}
そのため、コードを実行すると、テーブルビューフレームが増加しますが、コンテンツサイズは拡大されず、スクロールビューがテーブルビューの最後までスクロールしないため、テーブルビューが自動レイアウトの制約に従っていないため、奇妙になります。
これを行う必要があっただけです-
行を削除-tableView.frame.size = tableView.contentSize
テーブルビューの高さの制約を追加します。
優先度を高に設定
高さ制約の出口を作成します(Ctrl +ドラッグ)。
テーブルのデータを再読み込みする必要がある場合は常に、高さの制約をテーブルビューのコンテンツの高さに設定します。
tableHeightConstraint.constant = tableview.contentSize.height