2016-06-20 17 views
0

Würdest du dieses Design-Modell unten als Tabellenansicht mit unterteilten Gruppen schreiben, die an den Seiten mit benutzerdefinierten Zelltypen aufgefüllt sind, oder würdest du die Gruppen in eine Bildansicht legen und jede Sektion zu einer UIView machen.Architektonischer Ansatz in iOS Interface Builder

Dies ist keine meinungsbasierte Frage oder "zu allgemein" Dies ist ein iOS-Entwicklungsentwurf Problem.

In Interface-Builder habe ich sieben Bildschirme, die wie das Bild unten aussehen. Wenn ich eine Tabellenansicht für das Scrollen verwende und gruppierte Abschnitte verwendet, sollten diese Abschnitte nicht in der Lage sein, zu scrollen, sie müssen statisch sein, weil es kein besseres Wort gibt. Ist das überhaupt möglich?

Die Kopfzeilen der Abschnitte bleiben oben, bis Sie an ihnen vorbeirollen, was ich nicht möchte.

Ich kann auch nicht eine statische un-scrollbare Tabelle in eine Scrollview legen, da das nur rückwärts und falsch ist. Auch bei diesem Ansatz habe ich unterschiedlich große Header für jeden Abschnitt und verschiedene Zelltypen für jeden Abschnitt. Scheint eher klebrig/hacky, dies zu tun.

Wenn ich den UIView Aufbauansatz verwende, ist das sehr viel Gebäude, da es 7 Bildschirme gibt, die dieses Aussehen haben.

Was ist die bessere Entscheidung basierend auf einem nativen iOS-Entwicklungsansatz? Besser, viele benutzerdefinierte TableViews für jeden Bildschirm oder eine Reihe von UIViews mit Unteransichten zu verwenden? Beide Ansätze haben große Kompromisse für mich, was meiner Erfahrung nach ungewöhnlich ist. Siehst du eine bessere Herangehensweise als das, wonach ich suche?

enter image description here

+0

Wie viele Zeilen kann es haben? –

+0

Es variiert von mindestens 3 bis 5, einschließlich der letzten Zeile für "andere", wo sie eine Antwort eingeben können. – Robert

+0

Sie könnten wahrscheinlich eine UIView-Unterklasse erstellen, die genau das tut, was Sie wollen, als eine Tabelle zu verwenden. Diese Unterklasse würde UIView-Unterklassen für die benötigten Zeilen dynamisch hinzufügen. –

Antwort

0

Das Problem mit Tabellen verwenden, wenn Sie einen radikal anderen Blick wollen, ist, dass man sich gegen sie kämpfen oft finden. An einem bestimmten Punkt könnten Sie sogar versuchen, Code zu schreiben, der die öffentliche API unterwandert und grundlegende Ansichten in der Zelle oder in der Tabellenansicht bearbeitet und manipuliert.

Obwohl dies "akzeptabel" ist und nicht als "private API" betrachtet wird, werden Sie wahrscheinlich feststellen, dass eine zukünftige iOS-Version dieses Verhalten durchbricht.

Wenn ich etwas möchte, das weit vom Tisch entfernt ist, verwende ich keine Tabelle.

In Ihrem Fall können Sie einfach keine Abschnitte verwenden und die Header einen anderen Zelltyp erstellen. Das wäre wahrscheinlich nicht so schlimm. Der Rest Ihres Modells sieht so aus, als wäre es als Tabelle implementierbar.

+0

Ja, die Design-Wahl scheint, als könnte es leicht in der Zukunft brechen, das ist ein guter Punkt. Ich brauchte eine Plausibilitätsprüfung. Dein Rat hat genau das getan. Danke, Lou. – Robert

Verwandte Themen