3 Stimmen

Wie implementiert man eine ein- und ausblendbare Ansicht auf dem iPhone?

Ich möchte den Effekt einer Ansicht implementieren, die in gleitet, ähnlich wie die Animation einer Ansicht, die von presentModalViewController gebracht wird, aber die Ansicht gleitet nur in die Hälfte des Bildschirms zu decken.

Ich bin es so angegangen:

1) Unmittelbar bevor diew -Ansicht erscheinen und eingeblendet werden soll, fügen Sie die untergeordnete Ansicht addSubview hinzu. Positionieren Sie sie so, dass sie am Anfang nicht zu sehen ist.

2) Rufen Sie eine Methode auf dem View-Controller der Unteransicht auf, um den Core-Animation-Code auszuführen, um sie einzubinden.

Doing die oben schien nicht zu funktionieren (nichts passiert - die Ansicht erscheint nur an seinem Startort). Hinzufügen der Ansicht vor der Zeit in viewDidLoad wird auch nicht funktionieren. Idealerweise möchte ich, dass der Code die gleiche Anforderung wie presentModalViewController haben - die erfordert, dass Sie den View-Controller an der Stelle instanziieren, die Sie benötigen, um die Ansicht in und animieren es zu bringen.

Würde es begrüßen, wenn Sie Zeiger oder Code auf die Animation der Ansicht in/out als auch zur Verfügung stellen können.

2voto

Ryan Ferretti Punkte 2921

Ich würde mir das Beispielprojekt ansehen ViewTransitions auf der Apple-Entwicklungsseite. Sie ist eine großartige Ressource für das Verständnis der einfachen Dinge, die Sie beim Einrichten von Übergängen tun müssen. Wenn Sie nur die Hälfte des Bildschirms einblenden möchten, können Sie versuchen, den Rahmen der "gleitenden Ansicht" auf die Hälfte des Bildschirms einzustellen... sehen Sie sich einfach den Code an und probieren Sie es aus.

2voto

CalZone Punkte 1663

Ich in der Regel animieren modalen Bildschirm in der übergeordneten viewController anstelle von modalen viewController selbst.

0voto

nico Punkte 9578

Vielleicht sollten Sie den Code, den Sie in Schritt Nummer 2 verwenden, veröffentlichen. Ich habe etwas Ähnliches bei einer meiner Anwendungen gemacht, bei der der Benutzer eine Ansicht von einem Rand des Bildschirms zum anderen schiebt, als ob er eine Abdeckung über den Bildschirm legt.

Wenn es sich um eine automatische Animation (ohne Benutzerinteraktion) handelt, müssen Sie meiner Meinung nach: der gleitenden Ansicht einen Rahmen zuweisen, der die Endposition darstellt. Tun Sie dies innerhalb eines Animationsblocks. Spielen Sie mit den Parametern Dauer, Animationskurve usw.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X