2009-06-19 6 views
11

Das iPhone hat eine private Liste von Effekten, die Apple verwendet, wie "genieEffect" und "slurpEffect". Ich frage mich, wie man den Slurp-Effekt implementiert (das ist, wenn Sie eine E-Mail-Nachricht oder eine Notiz zerlegen).Wie Slurp-Effekt auf dem iPhone zu implementieren?

Ich verstehe, wie Core Animation zu verwenden, aber ich bin mir nicht sicher, welche Teile davon, um diese Animation zu erhalten.

+0

Insbesondere suche ich, wie man den Effekt selbst (oder etwas Ähnliches) simuliert, anstatt die private API zu benutzen (die meine APP zurückgewiesen erhält). – Itay

Antwort

1

Dieser Beitrag spricht über die private API für den Effekt mit: link text

+0

Ich verstehe, wie man den Effekt mit der privaten API erhält, aber das ist nicht das, wonach ich bin, wie ich meine App nicht abgelehnt werden würde :) Ich suche speziell, wie ich den Effekt selbst simuliere (oder etwas ähnliches). – Itay

+0

Technisch gesehen ... ist dies eine undokumentierte API, keine private API? Offenbar verwenden Sie weiterhin die öffentlich verfügbaren Funktionsaufrufe. Ich denke, das ist wahrscheinlich sicher zu benutzen, aber ich würde eine Flagge einwerfen, so dass Sie zu einem lahmen Effekt zurückfallen können, wenn sie nicht zustimmen. –

+1

Ich würde gerne glauben, dass du Recht hast, aber meine Intuition sagt mir etwas anderes. Ich werde wahrscheinlich einen anderen Übergang finden, es sei denn, jemand hat eine Idee, wie das zu implementieren ist. – Itay

1

Es scheint eine komplexe Kombination von 2D- und 3D-Transformationen zu sein. : - \ Du musst dich wirklich in CoreAnimation vertiefen, um diesen Effekt zu simulieren.

1

Ich würde es mit einer affinen Transformation auf der Ebene der Ansicht angewendet werden. Lineare Algebra ist nicht meine Stärke;) so kann ich nicht die genaue Transformation angeben, aber meine Vermutung wäre für die Animation so etwas wie diese:

  • die Alpha-Set verblassen auf 0,0 oder etwas nahe 0
  • Nehmen ein, die beiden unteren Ecken der Nähe des Zentrums
  • Verkleinerungs Sicht auf sehr kleine
  • bewegen sich die Schicht der Mitte bis in den unteren Rand des Bildschirms zu zerquetschen Transformation (oder wo auch immer Sie wollen, dass es genie.

Das ist mehr oder weniger, wie ich denke, es würde funktionieren. Möglicherweise müssen Sie diese Dinge zu verschiedenen Zeiten oder alle in einem Block animieren, ich bin mir nicht ganz sicher.

Sehen Sie sich die Dokumentation zu CALayer, CABasicAnimation und CGAffineTransform an.