自動レイアウトを使用できます。スクロールビューでコンテンツビューを使用します。これは、スクロールビューに固定することができ、高さと幅の制約はメインビューと同じです。次に、高さを動的に変化させたい場合、高さの制約に他の高さよりも低い優先順位を与えることができます。そのため、コンテンツビューの高さは、そのサブビューのために、本来のサイズに基づいて増加します。
参照リンク:
最初に0
のサブビューの高さ制約を設定し、次にデータの高さ(サブビューで設定する)を計算し、subview.heightConstraint.constant = data.height
を割り当てるだけです。次にscrollView.contentsize
を設定する必要があります。サブビューの高さに基づく:
self.scrollView.contentSize = CGSize(width: self.scrollView.contentSize.width, height: self.subViewHeight.constant)
私にとって、このトリックはうまくいきました(Swift 4)
scrollView.layoutIfNeeded()
scrollView.isScrollEnabled = true
scrollView.contentSize = CGSize(width: self.view.frame.width, height: scrollView.frame.size.height)
スペースを含め、コンテンツに必要な高さを計算する必要があります。その値を行の高さとして割り当て、テーブル(またはその行の一部)を更新します