2016-05-02 15 views
0

Ich habe seit Wochen meinen Kopf auf diesem explodieren. Ich wusste, es war Zeit, Sie zu fragen Jungs nach dem Versuch jeder NSLayoutConstraint Kombination möglich :)Autolayout mit mehreren containerViews von dynamischer Höhe in einem UIScrollView

Mein MainViewController hat mehrere Teile für Nachrichten, Freunde, Profil und etc funktioniert wie eine Übersichtsseite für die Aktivitäten des Benutzers. Ich möchte diese verschiedenen Teile als separate ViewController s implementieren, da sonst Äpfel und Birnen gemischt würden. Recht? Und natürlich müssen diese in eine UIScrollView gehen, weil sie länger als die Bildschirmhöhe sind.

Eine Sache, die alles schwerer macht ist, dass diese childViewController s Höhen variabel sind und zur Laufzeit entsprechend ihrem Inhalt vom Server heruntergeladen werden.

Können Sie mich zur richtigen Strategie führen, wie man dieses Design gestaltet? Ich möchte ein Storyboard verwenden. Wenn nicht möglich, kann ich alles auch im Code machen. Ich glaube, der schwierige Teil besteht darin, die richtigen Einschränkungen der Unteransichten MainViewController (UIScrollView, UIView, UIContainerView) zu setzen und irgendwie die ChildViewController s Höhe an einem geeigneten Ort zu übergeben.

Und ich bin auch erstaunt, wie wenig Informationen es zu diesem Thema gibt. Ich dachte immer, dass diese Art von Design in Apps ziemlich beliebt sein muss.

+0

Ich denke, Sie sollten feste Höhe Einschränkung für diese Ansichten festlegen, und ändern Sie den konstanten Wert dieser Einschränkung nach Ihren Bedürfnissen. – almas

+0

Klingt nach UIStackView. Der Inhalt wird automatisch basierend auf seiner Größe skaliert und animiert sogar Änderungen. Sie können es auch in eine UIScrollView einfügen. – Clafou

+0

@almas Sie sagen also, ich sollte IBOutlet Höhe Einschränkungen für ChildVCs erstellen (müssen sie Platzhalter Einschränkungen sein?) Und wo werde ich die Beschränkungen aktualisieren? Inside Child-Server-Anruf? – aytunch

Antwort

0

In meiner Erfahrung mit der Verwendung UIScrollView würde ich in fast 99% der Fälle sie nicht empfehlen. Sie sind schwer zu verwenden mit Auto-Layout und sie können leicht durch geringfügige Änderungen gebrochen werden. Sie sind auch super nervig, um in IB zu verwenden, da Sie nicht seinen Inhalt scrollen können.

Für dieses Design würde ich lieber eine UITableView mit statischen Zellen verwenden (basierend auf der Annahme, dass Ihre Ansicht die gleichen Informationen für jeden Artikel/Person enthält); Jede enthält eine Containeransicht für Ihre verschiedenen View-Controller.

Das bedeutet, dass Sie sich nicht um das automatische Layout kümmern müssen und Ihre Zellen sollten sich automatisch anpassen, sobald sich der Inhalt ändert.

Verwandte Themen