Ist es möglich, segue / containing view in eine Scrollview mit Code einzubetten?

8

Bei einem iPhone-Projekt verwende ich das Xcode-Storyboard, um ein paar Ansichten in eine Hauptscrollansicht einzubetten. Ich habe gehört, dass die Ansicht auch ein "Embed-Segment" ist. Jetzt muss ich nicht unbedingt andere untergeordnete Controller einbetten. Ich hätte einfach benutzerdefinierte Ansichten erstellen und die Logik der ursprünglichen untergeordneten Controller in diesen benutzerdefinierten Unteransichten verwenden können. (Ich denke, ich mache das erst, nachdem ich hier gepostet habe, weil es einfacher scheint.) Aber ich habe den Code bereits gemacht und möchte wissen, wie einfach oder schwer es ist, dabei zu bleiben.

Da der Inhalt der Bildlaufansicht größer ist als die Grenzen des Hauptbildschirms, ist es schwieriger, die Containeransicht im Storyboard zu planen. Ich kann mir drei Wege vorstellen, um es zu lösen. Ich kann entweder

  1. Ziehen Sie die Bildlaufansicht nach oben und unten und legen Sie dort meine Containeransichten ab.
  2. Ziehen Sie einfach eine Ansicht in die Bildlaufansicht und ändern Sie dann die Größe des Rahmens in der ViewDidLoad des Hauptcontrollers. (Und wenn ich Auto-Layout verwende, dann würde ich Auto-Layout dort hinzufügen) Aber scheint nur den Vorteil zu trotzen, Storyboard und Embed-Segue in erster Linie zu haben. Aber es scheint einfacher als # 3, wenn ich mit Kind-View-Controllern interagieren muss.
  3. Vergessen Sie das Storyboard und schreiben Sie einfach eine Containing-Steuerungslogik (wie in WWDC-2012-Video zur Implementierung von UIViewController Containment beschrieben), aber das scheint kompliziert zu sein.

Gibt es eine Möglichkeit, eingebettete Segmente in Xcode zu erstellen, aber NICHT zu verwenden, sondern etwas wie einen "manuellen Übergang" zu tun, wie bei anderen Ansichtenübergängen? Ich wäre nicht in der Lage, das Layout im Storyboard zu sehen, aber zumindest wird es einfacher als # 3 und ich muss nicht wie Nr. 2 auf und ab ziehen, was albern erscheint.

    
huggie 21.09.2013, 03:58
quelle

2 Antworten

30
___ qstntxt ___

Bei einem iPhone-Projekt verwende ich das Xcode-Storyboard, um ein paar Ansichten in eine Hauptscrollansicht einzubetten. Ich habe gehört, dass die Ansicht auch ein "Embed-Segment" ist. Jetzt muss ich nicht unbedingt andere untergeordnete Controller einbetten. Ich hätte einfach benutzerdefinierte Ansichten erstellen und die Logik der ursprünglichen untergeordneten Controller in diesen benutzerdefinierten Unteransichten verwenden können. (Ich denke, ich mache das erst, nachdem ich hier gepostet habe, weil es einfacher scheint.) Aber ich habe den Code bereits gemacht und möchte wissen, wie einfach oder schwer es ist, dabei zu bleiben.

Da der Inhalt der Bildlaufansicht größer ist als die Grenzen des Hauptbildschirms, ist es schwieriger, die Containeransicht im Storyboard zu planen. Ich kann mir drei Wege vorstellen, um es zu lösen. Ich kann entweder

  1. Ziehen Sie die Bildlaufansicht nach oben und unten und legen Sie dort meine Containeransichten ab.
  2. Ziehen Sie einfach eine Ansicht in die Bildlaufansicht und ändern Sie dann die Größe des Rahmens in der ViewDidLoad des Hauptcontrollers. (Und wenn ich Auto-Layout verwende, dann würde ich Auto-Layout dort hinzufügen) Aber scheint nur den Vorteil zu trotzen, Storyboard und Embed-Segue in erster Linie zu haben. Aber es scheint einfacher als # 3, wenn ich mit Kind-View-Controllern interagieren muss.
  3. Vergessen Sie das Storyboard und schreiben Sie einfach eine Containing-Steuerungslogik (wie in WWDC-2012-Video zur Implementierung von UIViewController Containment beschrieben), aber das scheint kompliziert zu sein.

Gibt es eine Möglichkeit, eingebettete Segmente in Xcode zu erstellen, aber NICHT zu verwenden, sondern etwas wie einen "manuellen Übergang" zu tun, wie bei anderen Ansichtenübergängen? Ich wäre nicht in der Lage, das Layout im Storyboard zu sehen, aber zumindest wird es einfacher als # 3 und ich muss nicht wie Nr. 2 auf und ab ziehen, was albern erscheint.

    
___ tag123objectivec ___ Dieses Tag sollte nur bei Fragen verwendet werden, die sich auf Objective-C-Features beziehen oder von Code in der Sprache abhängen. Die Tags [Kakao] und [Kakao-Touch] sollten verwendet werden, um nach Frameworks oder Klassen von Apple zu fragen. Verwenden Sie die zugehörigen Tags [ios], [macos], [apple-watch] und [tvos] für Probleme, die für diese Plattformen spezifisch sind. ___ tag123xcode ___ Xcode ist Apples integrierte Entwicklungsumgebung (IDE). NUTZUNGSHINWEIS: Verwenden Sie dieses Tag nur für Fragen zur Xcode-IDE selbst und nicht für allgemeine Mac- oder iOS-Programmierungsthemen. Verwenden Sie [Kakao] für Mac-Programmierfragen und [Kakaotouch] oder [ios] oder [Swift] für iOS-Programmierfragen. ___ tag123containers ___ Ein Container ist eine Klasse, eine Datenstruktur oder ein abstrakter Datentyp, dessen Instanzen Sammlungen anderer Objekte sind. Container verwenden normalerweise Generics oder Vorlagen, so dass eine Vielzahl von Objekten hinzugefügt werden kann. ___ tag123ios ___ iOS ist das mobile Betriebssystem, das auf dem Apple iPhone, iPod touch und iPad ausgeführt wird. Verwenden Sie dieses Tag [ios] für Fragen zur Programmierung auf der iOS-Plattform. Verwenden Sie die verwandten Tags [objective-c] und [swift] für Probleme, die für diese Programmiersprachen spezifisch sind. ___ qstnhdr ___ Ist es möglich, segue / containing view in eine Scrollview mit Code einzubetten? ___ answer33136843 ___

Hier sind die Hilfsfunktionen, mit denen ich einen untergeordneten Ansichtscontroller programmgesteuert in eine Ansicht einbetten kann.

%Vor%

Verwendung:

%Vor%

Wo:

  • "MyViewControllerId" - die Storyboard-ID des untergeordneten View-Controllers, der eingebettet wird.
  • "MyStoryboardName" - der Name der Storyboard-Datei mit eingebettetem View-Controller.
  • containerView - die Ansicht in Ihrem Containeransicht-Controller, in der der untergeordnete View-Controller eingebettet sein wird.
___
Firo 24.09.2013, 13:50
quelle
1

Hier sind die Hilfsfunktionen, mit denen ich einen untergeordneten Ansichtscontroller programmgesteuert in eine Ansicht einbetten kann.

%Vor%

Verwendung:

%Vor%

Wo:

  • "MyViewControllerId" - die Storyboard-ID des untergeordneten View-Controllers, der eingebettet wird.
  • "MyStoryboardName" - der Name der Storyboard-Datei mit eingebettetem View-Controller.
  • containerView - die Ansicht in Ihrem Containeransicht-Controller, in der der untergeordnete View-Controller eingebettet sein wird.
Evgenii 14.10.2015 22:38
quelle

Tags und Links