animiert UIView Übergänge wie Punkt zu Kreis erweitern

9

In meiner iPhone App muss ich eine andere Art von Übergang implementieren.

das war

nächste Ansicht von der aktuellen Ansicht geöffnet,

es ist wie ein Punkt, und der Punkt expandiert langsam wie ein Kreis, mit dem im Kreis die nächste Ansicht teilweise in dem Teil des Kreises angezeigt werden soll, schließlich dehnt sich der Kreis vollständig aus, die nächste Ansicht erscheint vollständig.

>

Ich suche viele Übergänge wie CATransitions und einige Animationen auf dem Kakaokontroller, aber ich habe diese Art von Übergang nicht gefunden, kann mir bitte jemand helfen.

    
user2732294 02.09.2013, 04:56
quelle

3 Antworten

1

In meinem Fall habe ich es so gemacht:

Setzen Sie eine CAShapeLayer -Instanz als die mask-Eigenschaft der Ebene Ihrer benutzerdefinierten Ansichtsunterklasse

%Vor%

zoomen Sie diese Maskenebene auf die volle Größe. Code deiner Ansicht:

%Vor%

der Code der Maskenebene:

%Vor%

aus der Dokumentation:

  

Der Alpha-Kanal der Ebene bestimmt, wie viel Inhalt der Ebene enthalten ist   und Hintergrund zeigt durch. Völlig oder teilweise undurchsichtige Pixel ermöglichen   Der zugrunde liegende Inhalt soll durch aber vollständig transparente Pixel durchscheinen   Blockiere diesen Inhalt.

     

Der Standardwert dieser Eigenschaft ist nil nil. Beim Konfigurieren eines   Maske, denken Sie daran, die Größe und Position der Maskenebene festzulegen   Stellen Sie sicher, dass es korrekt mit der Ebene ausgerichtet ist, die es maskiert.

Also habe ich einen Kreis mit UIBezierPath gezeichnet, um die runde Maske zu erhalten. Zu Beginn setze ich den Skalierungsfaktor der Maske auf 0, so dass nichts von der Ebene der Ansicht sichtbar ist. dann wird der Maßstabsfaktor auf 1 gesetzt (das Füllen der Ebenengrenzen), was eine schöne Animation eines Kreises ergibt, der seinen Radius von der Mitte aus vergrößert.

Sie benötigen möglicherweise eine weitere Animation, die den Mittelpunkt Ihrer Ansicht verschiebt. beide Animationen können in eine CAAnimationGroup eingebunden werden.

    
hacker2007 02.09.2013, 10:13
quelle
2

Nun, ich denke, ich kann Ihnen einen Workaround anbieten. Anstatt wie ein Punkt zur nächsten Ansicht zu wechseln. Ich schlage vor, Sie fügen eine einfache Punktanimation in ViewWillAppear der Ansicht hinzu, in der Sie gedrängt werden müssen. Jetzt würde die Push-Methode gleich bleiben wie

%Vor%

Aber in ViewWillAppear wäre der Code so, dass der Punkt zu einem Kreis erweitert würde und die Neue Ansicht darunter aufdeckt. Ich hoffe, Sie verstehen die Logik, die ich hier zu erklären versuche. Jedes Problem lassen Sie mich wissen.

    
IronManGill 02.09.2013 05:03
quelle
1

In der ersten Ansicht öffnen:

// Delegate-Methode für Annotation ausgewählt     - (void) tapOnAnnotation: (RMAnnotation *) Annotation onMap: (RMMapView *) map;     {         // Um ​​den Berührungspunkt des GMS-Markers zu erhalten, um sie als Kreisübergangsposition zu setzen         CGPoint markerPoint = annotation.position;         x = markerPoint.x;         y = markerPoint.y;

%Vor%

In der nächsten Ansicht schließen:

%Vor%     
user2732294 05.09.2013 09:23
quelle