2017-12-27 12 views
1

ich nächste Struktur der Ansichten haben:ios die Größe Scroll von containerview mit tavleview innen

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

Tableviewcontroller verfügt über Tasten, die Zeilen hinzufügen oder entfernen, ich will Ansicht blättern, um die Größe, dass es voll Tableview Inhalt zeigt (ohne Scrollen Tabellenansicht). Ich habe versucht, eine Lösung wie: von here oder Sizing a Container View with a controller of dynamic size inside a scrollview aber ohne Erfolg. Ich benutze iOS 10.0 & swift

Antwort

0

Die erste Sache ist Einschränkungen. Sie müssen angemessene Einschränkungen haben mit UIScrollView und Ansicht des Containers

Das nächste, was Sie brauchen, ist Höhenbeschränkungen von tableviewController (Sie Höhe auf 0 mit Bezug größer gleich mit 750 Priorität geben kann, so würde Constraints nie brechen, wenn etwas schief passiert)

Nehmen Sie IBOutlet dieser Höhenbeschränkung, wenn Ihre Daten einfügen/löschen passiert Ihre Inhaltsgröße wird ändern und diese Höhe contentsize auf Konstante der IBOutlet-Einschränkung anwenden und nicht zu layoutIfNeeded vergessen.

Machen Sie Ihre Tableview Scrollen Bounce auf false

schaffen Änderung Behälter Ansicht über Höhe

protocol ContainerTableDelegate { 
     func dataChanged(height: CGFloat) 
} 

und zu benachrichtigen, wenn Höhenänderung Eltern-View-Controller

delegate?.dataChanged(self.heightConstraint.constant) 

Jetzt im Haupt benachrichtigen viewcontroller, wo Sie alle Behälter haben

implementieren

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

identifizieren Viewcontroller gesetzt Delegierter self Delegierten implementieren und ändern Höhe der Containeransicht 3 konstant (Sie müssen dies auch)

Hoffe, es wird dazu beitragen, das Problem für die Antwort

+0

Dank zu lösen Prashant Tukadiya, aber leider Container Ansicht ändert sich nicht seine Größe, ich versuchte es auch größer als benötigt multiplizieren, delegieren Werke, Constraint-Sets, layoutIfNeeded auch Anrufe (Ich überprüfte es manuell Scrollview Inhalt Größe größer in Funktion, die neue gilt Höhe) habe ich auch versucht hinzuzufügen tableviewController.view.translateAutoresizingMaskIntoConstraints = false, aber ohne Erfolg –

+0

@AntonLisitsyn Ich habe UIView erstellt und gebe ihr eine Höhenbeschränkung. In dieser Ansicht habe ich die Containeransicht hinzugefügt. Auf einer Schaltfläche ändere ich sogar den konstanten Wert der Höhenbeschränkungen und dementsprechend ändert sich auch die Containeransicht. Also sollte es funktionieren –

Verwandte Themen