UIView vs Containeransicht

8

Also hier ist das Problem, das ich versuche zu lösen.

  

In jedem viewController versuche ich Anzeigen und die eigentlichen Steuerelemente einzufügen. Ich habe ein paar Tutorials auf raywenderlinch.com beendet, um zu verstehen, wie die Leute professionell Werbung in ihrer App platzieren. Sie verwendeten UIViews, um zwei Ansichten unter der Hauptansicht des Ansichtscontrollers zu haben. So habe ich völlig verstanden, dass ein subview die Anzeigen hält und ein anderer den tatsächlichen App-Inhalt hält. Wenn die Anzeige geladen ist, nehmen Sie den Bildschirm auf oder lassen Sie die andere Ansicht den gesamten verfügbaren Bereich anzeigen.

Nachdem ich zu xcode zurückgekommen bin, habe ich angefangen zu schreiben, wie ich dort gelernt habe. aber als ich UIView auf das Storyboard fallen ließ, sah ich containerView , was meiner Meinung nach beim Schreiben des Tutorials nicht vorhanden war.
Also bin ich hier, um nach dem Ansatz und den Vor- und Nachteilen zu fragen.
Also im Grunde seine UIView vs ContainerView . Welchen Weg sollte ich machen und warum?
Jede Hilfe würde sehr geschätzt werden.

    
Alix 21.07.2014, 07:36
quelle

3 Antworten

22

Sie verwenden UIView , wenn Sie bereits eine Ansicht haben und keinen dedizierten View-Controller zum Erstellen und Verarbeiten von Interaktionen benötigen.

Auf der Hilfeseite UIView :

  

Das UIView-Objekt beansprucht eine rechteckige Region seines einschließenden superview (sein übergeordnetes Element in der Ansichtshierarchie) und ist für das Zeichnen in dieser Region verantwortlich ...

Vereinfachte Struktur: YourViewController --- (hat) --- & gt; UIView

Sie verwenden UIContainerView , wenn Sie einen anderen View-Controller in den bereits vorhandenen integrieren möchten. Der eingebettete View-Controller ist dafür zuständig, eine Ansicht für die Region zurückzugeben, die UIViewContainer belegt. Daher weiß Ihr UIContainerView , welcher Ansicht-Controller% ce_de% in der Region, die er belegt, darstellt.

Auf der Hilfeseite UIContainerView :

  

Die Containeransicht definiert eine Region innerhalb des View-Untergraphen eines View-Controllers, die einen Child-View-Controller enthalten kann.

Vereinfachte Struktur: YourViewController --- (hat) --- & gt; SubViewController --- (hat) --- & gt; UIView

Das SubViewController gibt eine Ansicht zurück und behandelt seine Ereignisse.

    
Keenle 21.07.2014 08:32
quelle
3

Als alternative Antwort können Sie anstelle der technischen Unterschiede auch den Anwendungsfall berücksichtigen. Zum Beispiel: Warum eine Containeransicht verwenden?

Eine häufige Verwendung von Containeransichten ist die Wiederverwendung (Freigabe) einer Ansicht direkt im Storyboard. Zuvor erforderte die Wiederverwendung einer Ansicht das Erstellen einer separaten "xib" -Datei und das programmatische Hinzufügen dieser Ansicht, wenn der Ansichtscontroller geladen wurde.

Das obige Bild stammt von diesem extrem einfachen, leicht zu befolgenden Leitfaden führt Sie durch, wie Sie eine Containeransicht einrichten, die von 2 + View-Controllern gemeinsam genutzt wird.

Ein paar andere Gedanken darüber, wann man es benutzen sollte:

  • Eine Navigationsleiste ist Teil eines UINavigationControllers, , bei dem es sich um einen Containersicht-Controller handelt . Wenn Sie also eine benutzerdefinierte Alternative erstellen möchten, verwenden Sie wahrscheinlich eine Containeransicht.
  • Ein Container kann Ihnen jederzeit helfen, wenn Sie vorübergehend eine komplexe Ansicht über Ihrer aktuellen VC anzeigen möchten, aber nicht modal eine andere VC präsentieren können. Bei diesem Ansatz können Sie diese temporäre Ansicht weiterhin im Schnittstellen-Generator erstellen, um automatische Layout-Einschränkungen für sie einzurichten usw.
  • Ich habe auch einen Leitfaden gefunden, in dem erklärt wird, dass es einen Weg gibt, den Server auszuschalten verschiedene Containeransichten, die auf der Situation basieren, sodass Ihre VC über sehr dynamische Unterabschnitte verfügen kann, ohne diese Unterabschnitte programmgesteuert erstellen zu müssen. Ein Bild von diesem Führer, das zeigt, worauf ich mich beziehe:

Dies hilft hoffentlich Leuten, die herausfinden wollen, wann eine Containeransicht auf sie zutrifft. Wenn Sie andere Anwendungsbeispiele haben, bearbeiten / fügen Sie sie hinzu oder fügen Sie sie in die Kommentare ein!

    
Dave G 23.06.2016 14:37
quelle
1

Wenn Sie diese Containeransicht des UIView-Klassentyps im Detail sehen. Um zu erfahren, warum wir containerView benötigen, sollten Sie den folgenden Abschnitt sehen

  

In den meisten Fällen entspricht ein Container-View-Controller einem Content-View-Controller. Es verwaltet Sichten und Inhalte, koordiniert mit anderen Objekten in Ihrer App und reagiert auf Ereignisse in der Responder-Kette. Bevor Sie einen Container-Controller entwerfen, sollten Sie bereits mit dem Entwurf von Inhaltsansicht-Controllern vertraut sein. Die Entwurfsfragen in "Erstellen von benutzerdefinierten Inhaltsansichtscontrollern" gelten auch beim Erstellen von Containern.

Weitere Informationen zur Containeransicht erhalten Sie unter link Aber bevor Sie beginnen, sollten Sie ein Verständnis von

haben

und auch dieses Tutorial für die Verwendung der Containeransicht .

So können Sie beide Ansätze wählen. Hoffe das wird dir helfen. fröhliche Codierung:)

    
Shubhendu 21.07.2014 08:18
quelle