2016-03-21 4 views
-1

Gibt es ein allgemeines Muster für den Wechsel zwischen kleinen Subviews in iOS-Anwendungen? Zum Beispiel mache ich eine Art Bildbearbeitungsanwendung und ich habe Instrumententafel Ansicht wie die panel view in interface builder.iOS zwischen Subviews allgemeines Muster wechseln

Ich möchte verschiedene Ansichten mit Schiebereglern und Symbolen im oberen rechten Bereich dieser Ansicht ändern, wenn entsprechende Schaltflächen im unteren Bereich gedrückt werden. Welcher Ansatz ist in dieser Situation besser? Machen Sie jede Unteransicht mit einem Xib und laden Sie sie jedes Mal, wenn Sie die Taste drücken?

Erstellen von Unteransichten in Interface Builder und Ausblenden aller außer einer, wenn die Schaltfläche gedrückt wird? Vielleicht gibt es einen handlichen Ansatz dafür? Und ich verwende Auto-Layout; Wie sollte ich mit Einschränkungen umgehen, um den Inhalt zu zentrieren und ihn zu füllen?

Antwort

0

Meine bevorzugte Ansatz ist dies:

1) Erstellen Sie einen Container Ansicht in Ihrem View-Controller

2) Erstellen Sie unabhängige Ansicht-Controller für jede subview (dies macht Sinn, wenn Ihre Subviews interaktiv sind und einige Steuerelemente haben und Logik ihrer eigenen). Ich mag es, sie in meinem Storyboard zu erstellen, ihnen eine benutzerdefinierte Größe zu geben, damit Sie sie im Interface Builder entwerfen können, und sie dann im Code mithilfe von [storyboard instantiateViewControllerWithIdentifier:] zu laden.

3) Fügen Sie die untergeordnete Ansicht Controller zu gewährleisten, dass die sichtbaren über ist (durch so etwas wie [self.containerView bringSubviewToFront:childVC1.view] tut.

4) Wie Sie zwischen dem Kind VCs wechseln, bringen Sie den Blick auf dem aktuellen nach vornem .

5). Für die Kommunikation zwischen den übergeordneten und untergeordneten VCs können Sie Delegaten verwenden, um einen Retain-Zyklus zu verhindern.

+0

Vielen Dank, das ist interessant. Kannst du dann ein paar kleine Fragen beantworten? Vielleicht ist es dann besser, das gleiche mit dem ganzen Instrumentenbrett zu machen? Ich habe es in einem separaten Xib gemacht und lade es, nachdem die Taste auf dem Hauptcontroller gedrückt wurde. Und für jede geladene "kleine" Subview mit Controller sollte ich Layout-Einschränkungen in Code dann machen? –

+0

Ich glaube nicht, dass ich irgendwelche Einschränkungen in Code in ähnlichen Situationen setzen musste (was glücklich ist, denn es ist ein Schmerz). Solange Sie Ihre Kind-VCs in IB auslegen und auch den Rahmen der Ansicht des Kind-VC richtig setzen, sollten Sie gut sein. – Macondo2Seattle

+0

Ich bin mir nicht sicher, was Sie mit "machen Sie das gleiche mit dem ganzen Instrumentenpanel" meinen. Meinst du eine Kopie aller Knöpfe in jedem Kind VC? – Macondo2Seattle