uikit-transitions

___ answer49162230 ___

Die Frage kann in zwei geteilt werden:

  1. So implementieren Sie den Pinch-Zoom und das Ziehen mit der Schwenkgeste in %code%
  2. Wie präsentiert man einen View-Controller mit einer seiner Unteransichten ( %code% in vc2), die wie eine Unteransicht ( %code% in vc1) im Presenting-View-Controller
  3. positioniert sind

Pinch-Geste zoomen: Pinch-Zoomen ist einfacher mit %code% zu implementieren, da es standardmäßig unterstützt wird, ohne dass der Gestenerkenner hinzugefügt werden muss. Erstellen Sie eine %code% und fügen Sie die Ansicht, die Sie zoomen möchten, mit Pinch als Unteransicht hinzu ( %code% ). Vergessen Sie nicht, auch %code% selbst hinzuzufügen ( %code% ).

Konfigurieren Sie die Zoomstufen %code% min und max: %code% . Setzen Sie einen Delegaten für %code% und implementieren Sie %code% :

%code%

Was in diesem Fall Ihre %code% zurückgeben soll, und

Entsprechen Sie auch %code% und implementieren Sie:

%code%

Was sollte wahr werden. Dies ist der Schlüssel, der es uns ermöglicht, die Pan-Gesten-Erkennung mit dem internen Pinch-Gesten-Erkenner zu arbeiten.

Ziehen der Pan-Geste: Erstellen Sie einfach einen Pan-Gesten-Erkenner mit einem Ziel und fügen Sie ihn der Bildlaufansicht %code% hinzu.

Umgang mit Gesten: Der Pinch-Zoom funktioniert zu diesem Zeitpunkt gut, außer dass Sie den zweiten View-Controller präsentieren möchten, wenn der Pinch endet. Implementieren Sie eine weitere %code% -Methode, die benachrichtigt werden soll, wenn das Zoomen endet:

%code%

Und rufen Sie Ihre Methode auf, die den Detailansicht-Controller %code% darstellt, wir werden es in ein bisschen implementieren.

Der nächste Schritt ist die Pan-Geste. Ich lasse den Code sich erklären:

%Vor%

Die Implementierung verschiebt %code% nach der Schwenkposition und ruft %code% auf, wenn die Geste endet.

Bevor wir %code% implementieren, gehen Sie zum Detailansicht-Controller und fügen Sie Eigenschaften hinzu, die %code% und %code% selbst enthalten. In vc1 implementieren wir nun %code% als solches:

%Vor%

Stellen Sie in Ihrem %code% sicher, dass %code% und das Bild z. %code% und du wirst eingestellt.

Komplettes Arbeitsbeispiel:

%Vor%     
___ qstntxt ___

Ich habe zwei viewControllers:

ViewController1

Ein komplexer Stapel von Subviewcontrollern mit irgendwo in der Mitte einer imageView

ViewController2

Ein scrollView mit eingebettetem imageView

Was ich versuche zu erreichen, ist ein Übergang zwischen den beiden viewControllern, der ausgelöst wird, indem man die imageView von viewController 1 zwickt, so dass sie hineinzoomt und zu viewController 2 umschaltet. Wenn die Transition beendet ist, sollte die imageView gezoomt werden soweit es während des durch die Pinch-Geste ausgelösten Überganges gezoomt wurde.

Gleichzeitig möchte ich das Verschieben des Bildes während des Zoom-Übergangs unterstützen, so dass das Bild im Endzustand genau wie beim Zoom in den Ort umgewandelt wird, an den es gedreht wurde.

Bisher habe ich den Hero-Transitions-Pod ausprobiert und einen benutzerdefinierten ViewController-Übergang, den ich selbst geschrieben habe. Das Problem mit den Heldenübergängen besteht darin, dass das Bild im zweiten ViewController nicht richtig in den Endzustand eingerastet wird. Das Problem, das ich mit dem benutzerdefinierten ViewController-Übergang hatte, war, dass ich nicht gleichzeitig Zoomen und Schwenken zur gleichen Zeit arbeiten konnte.

Hat jemand eine Idee, wie man das in Swift implementiert? Hilfe wird sehr geschätzt.

    
___ tag123swift ___ Swift ist eine universelle Open-Source-Programmiersprache, die von Apple Inc. für ihre Plattformen und Linux entwickelt wurde. Verwenden Sie das Tag nur für Fragen zu Sprachfunktionen oder für Code in Swift. Verwenden Sie die Tags [ios], [osx], [watch-os], [tvos], [cocoa-touch] und [cocoa] für (sprachunabhängige) Fragen zu den Plattformen oder Frameworks. ___ answer49141619 ___

scheint wie %code% Ihnen helfen sollte; Zum Beispiel können Sie in %code% block einen neuen Bildrahmen setzen und in %code% - den zweiten View-Controller (ohne Animation);

    
___ qstnhdr ___ Interaktiver ViewController-Übergang, der gleichzeitig von Prise- und Pan-Gestenerkennern ausgelöst wird ___ tag123uikitttransitions ___ hilf uns dieses Wiki zu bearbeiten ___ 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. ___
2
Antworten

Interaktiver ViewController-Übergang, der gleichzeitig von Prise- und Pan-Gestenerkennern ausgelöst wird

Ich habe zwei viewControllers: ViewController1 Ein komplexer Stapel von Subviewcontrollern mit irgendwo in der Mitte einer imageView ViewController2 Ein scrollView mit eingebettetem imageView Was ich versuche zu erreiche...
26.02.2018, 13:56