Ich habe eine CAEmitterLayer
Animation entlang einer Bezier-Pfad (geschlossene Form, wie eine '8', von vier Kontrollpunkten) mit einer CAKeyframeAnimation
. Jetzt möchte ich die Animation steuern, indem ich einen Touch-Finger entlang des Pfades (aber nicht unbedingt auf dem Pfad) schiebe. Wie ist das möglich und ist das überhaupt möglich?Wie steuert man CAKeyframeAnimation mit Touch-Geste?
Antwort
Machen Sie eine CGpoint click;
Variable Ihren ersten „drag“ Punkt zu erinnern, dann erstellen Sie einen lokalen NSEvent
Handler ...
[NSEvent addLocalMonitorForEventsMatchingMask: NSMouseMovedMask
| NSLeftMouseDownMask
handler:^(NSEvent *e) {
if (e.type == NSLeftMouseDown) click = e.locationInWindow;
else "yourDelta" = click - e.locationInWindow; // pseudoCode
return e;
}];
„yourDelta“ ist der Versatz von diesem Ausgangspunkt aus dem aktuellen Standort ... Sie können auch ähnliche Ergebnisse mit Scroll-Ereignissen erzielen, indem Sie NSEventScrollWheelMask
... überwachen und die Werte e.deltaX
und e.deltaY
betrachten.
Edit: Ich bin nicht so vertraut mit Event-Handling auf iOS .. aber die gleiche Technik könnte mit normalen Event-Handler angewendet werden ... dh.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)e {
click = [e locationInView:_yourView];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent*)e {
"yourDelta" = click - [e locationInView:_yourView]; // pseudoCode
}
In Bezug auf Ihre Animation ist .. Eine Möglichkeit, „sucht“ einfach [layer addAnimation:theNewAnimation]
, Ihre vorherigen toValue
‚s, sondern die fromValue
zu stützen‘ mit s von 0 oder Ihr Modell layer
... Verwendung Ihre layer.presentationLayer
Werte stattdessen? Es ist schwer zu sagen, ohne den vollen Inhalt Ihrer CAKeyframeAnimation
zu sehen.
Dies wird mit 'cacao-touch' getaggt Ich nahm an, das OP suchte nach einer Möglichkeit, dies auf einem iOS-Gerät zu tun. Gibt es eine Möglichkeit, die CAKeyframeAnimation basierend auf dem Deltawert zu "suchen"? – Marc
- 1. Wie man Webpagedialog mit Python steuert
- 2. wie man die Benutzereingabe steuert
- 3. CAKeyframeAnimation doesNotRecognizeSelector
- 4. Wie steuert man den Mauszeiger mit Kopfbewegung mit emguCV C#?
- 5. Wie man einen Hintergrundprozess/Daemon steuert
- 6. Wie man Festnetztelefon vom Computer steuert?
- 7. Wie steuert man Mausbewegung in Visual C++?
- 8. System.Drawing: Wie steuert man das Schriftgewicht?
- 9. Wie steuert man div beim Hover:?
- 10. Wie man Störungsfunktion in AJAX steuert?
- 11. Wie steuert man die searchResultsTableView eines UISearchDisplayControllers?
- 12. Wie spezifiziert man den Selektor, wenn CAKeyframeAnimation beendet ist?
- 13. Haltevorgang wird ausgeführt CAKeyframeAnimation
- 14. Wie man einen Windows Service mit ServiceController fern steuert?
- 15. Wie man die Dimension/Größe eines Plots mit ggplot2 steuert
- 16. Log4j2, wie man das Logging-Ausgabeverzeichnis mit Kommandozeilenargumenten steuert
- 17. Wie steuert man die Maus in Mac mit Python?
- 18. Wie man die Größe eines Radiobuttons mit Erscheinen "Knopf" steuert
- 19. Wie man eine Taste mit Bewegung in opencv steuert?
- 20. Wie steuert man Bluetooth-Operationen mit adb Shell?
- 21. Wie steuert man Gleitkomma-Formatierung in Perl mit sprintf?
- 22. Wie steuert CLOCK Ereignisse?
- 23. CAKeyframeAnimation Verzögerung vor dem Wiederholen
- 24. Wie man den Mauszeiger außerhalb unserer Anwendung steuert
- 25. CAKeyFrameAnimation Verzögerungen vor dem Wiederholen
- 26. Wie steuert man Schriftgrößen in pgf/tikz-Grafiken in Latex?
- 27. Wie steuert man Popen Stdin, Stdout, Stderr Umleitung?
- 28. Wie steuert man die Kameraauflösung für webrtc in Chrome?
- 29. Styling ASP.net steuert mit Bootstrap
- 30. Delphi FMX-Bearbeitung steuert Inkonsistenzen - Wie erstellt man ein Schnelleingabeformular?
Sie meinen Partikel aus dem Bereich, wo der Benutzer seinen Finger schleppt? Was hast du auch versucht? –
Ich bin sehr neu in objective-c und habe keine Ahnung, wie man eine Animation (sei es eine CAEmitterLayer oder eine UIImageView oder Ebene) entlang eines Pfades mit einer Fingerberührung führt. Ich wäre glücklich mit jedem kleinen Hinweis ... Ich habe versucht, ein Maskenbild zu verwenden, das ich über den Pfad gelegt habe, der mir sagte, dass der Finger an war oder neben dem Pfad, aber dann emittieren die Partikel auch neben dem Pfad. – headkit
Warum ändern Sie nicht einfach die Position der Emitterschicht auf die Position des Fingers des Benutzers, indem Sie die Eigenschaft position festlegen? Holen Sie den Punkt, wo der Benutzer nicht schwer ist. –