Widget "flip" - Verhalten in Core Animation/Kakao
Ich versuche, eine Karte-Klasse, die Duplikate Verhalten von Dashboard-widgets, die Sie können Steuerelemente oder Bilder oder was auch immer auf zwei Seiten der Karte und flip zwischen Ihnen.
Layer-backed Blick auf eine transform-Eigenschaft, sondern zu verändern, die nicht tun, was ich erwarten würde, es zu tun (drehen der Ebene um die y-Achse Falten Sie zur linken Seite).
Wurde ich darauf hingewiesen, einige undokumentierte features und eine .h-Datei mit dem Namen cgsprivate.h, aber ich Frage mich, ob es einen offiziellen Weg, dies zu tun? Diese software müsste versendet werden und ich würde es hassen zu sehen, es nicht später, weil die Apple-Leute ziehen es in 10.6.
Jemand eine Idee, wie dies zu tun? Es ist so komisch für mich, dass ein einfaches widget, was wäre so schwer zu tun in Core Animation.
Vielen Dank im Voraus!
EDIT: ich kann das erreichen dieses Verhalten mit Bildern, die auf Ebenen, aber ich weiß nicht, wie Sie mehr erweiterte Steuerelemente/views/was auch immer auf die Schichten. Die Karte Beispiel Bilder verwendet.
- Ich schrieb eine Probe für das iphone, der veranschaulicht, eine Möglichkeit, dies zu tun. github.com/samyzee/CardFlipperSample
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mike Lee hat eine Implementierung der flip-Effekt, für die er freigegeben hat, einige Beispiel-code.(das ist Leider nicht mehr online verfügbar, aber Drew McCormack gebaut aus, die in seinem eigenen Umsetzung.) Es scheint, dass er schnappt sich die Ebenen "background" und "foreground" Ansichten ausgetauscht werden, verwendet eine CATransform3D drehen Sie die beiden Ansichten, die in der animation, und dann kehrt die Aussicht, sobald die animation abgeschlossen ist.Durch die Verwendung der Schichten aus den Ansichten, die Sie vermeiden benötigen, um den cache in ein bitmap, denn das ist, was die Schichten sind dabei sowieso. In jedem Fall sein-view-controller aussieht, um ein gutes drop-in-Lösung für das, was Sie wollen.
Verwendung von Core Animation wie e.James beschrieben...Beachten, diese ist mit garbage collection und einer gehosteten layer:
Header-Datei:
EDIT: Dies animiert zu flip von einem Fenster zu einem anderen Fenster. Sie können die gleichen Prinzipien auf einen Blick.
Es ist overkill für deine Zwecke (da es enthält eine weitgehend vollständige Brett-und Kartenspiel-Referenz-app), aber überprüfen Sie heraus dieses sample vom ADC. Die Kartenspiele enthalten, die es tun, die flip-Effekt ganz nett.
Wenn Sie sind in der Lage, dies zu tun mit den Bildern, vielleicht Sie können alle Steuerelemente in einem
NSView
Objekt (wie üblich), und dann machen dieNSView
in ein bitmap-Bild mitcacheDisplayInRect:toBitmapImageRep:
nur vor der Ausführung der flip-Effekt. Die Schritte wären:NSView
zu einer bitmapNSView
und setzen Sie das Bild SchichtIch weiß, das ist spät, aber Apple hat ein Beispiel-Projekt hier, die weiterhelfen können, um noch jemand stolpern auf diese Frage.
https://developer.apple.com/library/mac/#samplecode/ImageTransition/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010277
Hier gibt es eine komplette open-source-Implementierung dieses von den Jungs zu Mizage.
Können Sie check it out hier: https://github.com/mizage/Flip-Animation
Wohl nicht der Fall im Jahr 2008, als diese Frage gestellt wurde, aber das ist ziemlich leicht in diesen Tagen:
Hinweis: Anscheinend funktioniert dies nur auf iOS.