2017-12-27 63 views
1

内部tavleviewでcontainerviewでscrollviewのサイズを変更:IOSは、私は、ビューの次の構造を持っている

vc 
-view 
--safe area 
--scrollview 
---view 
----containerview1 
----containerview2 
----containerview3 
-----tableviewcontroller(in containervew3) 

Tableviewcontrollerは、行を追加または削除ボタンが、私はスクロールせずに、それは(フルテーブルビューの内容を示していることをスクロールビューのサイズを変更したい持っていますテーブルビュー)。私はhereまたはSizing a Container View with a controller of dynamic size inside a scrollviewのように解決しようとしましたが、成功しませんでした。私はiOS 10.0を使用しています& swift

答えて

0

最初のものは制約です。

(何か問題が起こった場合には制約が壊れることはないので、あなたは750の優先度と等しいより大きく関係して0に高さを与えることができます)あなたは UIScrollViewとの適切な制約を持っている必要がありますし、あなたが必要とするコンテナのビュー

次の事はtableviewControllerの高さの制約であります

データの挿入/削除が発生したときにその高さ制約のIBOutletを使用すると、コンテンツサイズが変更され、そのコンテンツサイズがIBOutlet制約の定数に適用され、layoutIfNeededが忘れられません。

にバウンススクロールあなたのテーブルビューは、高さ変化

protocol ContainerTableDelegate { 
     func dataChanged(height: CGFloat) 
} 

と高さの変更がメインで今すぐ親ビューコントローラ

delegate?.dataChanged(self.heightConstraint.constant) 

を通知についてのコンテナビューに通知するを作成してくださいあなたがすべてのコンテナを持っているviewcontroller

は、それが応答を

+0

感謝あなたの問題を解決するために役立つことを願っています(あなたも、これを必要とする)コンテナビュー3定数のデリゲートと変更高さを実現するのViewControllerがselfにデリゲートを設定する識別

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 

を実装Prashant Tukadiya、残念ながら、コンテナビューはサイズを変更しません、私はまた、乗算、デリゲートワーク、制約セット、layoutIfNeededコールで必要以上に大きくしようとしました(手動でscrollviewコンテンツサイズを大きくする高さ)も追加しようとしましたtableviewController.view.translatesAutoresizingMaskIntoConstraints = falseだが成功していない –

+0

@AntonLisitsyn私はUIViewを作成し、高さの制約を与えている。そのビューで私はコンテナビューを追加しました。いくつかのボタンでも高さ制約の定数値を変更しているので、コンテナビューも変化します。だからそれは動作するはずです –

関連する問題