Mam CAEmitterLayer
animowane wzdłuż ścieżki Beziera (forma zamknięta, jak "8", z czterech punktów kontrolnych) z CAKeyframeAnimation
. Teraz chcę kontrolować animację przesuwając palcem wzdłuż (ale nie koniecznie) ścieżki. Jak to możliwe i czy jest to możliwe?Jak kontrolować CAKeyframeAnimation za pomocą gestu dotykowego?
Odpowiedz
Zrób zmienna CGpoint click;
pamiętać początkowego oporu „punkt”, a następnie utworzyć lokalną NSEvent
obsługi ...
[NSEvent addLocalMonitorForEventsMatchingMask: NSMouseMovedMask
| NSLeftMouseDownMask
handler:^(NSEvent *e) {
if (e.type == NSLeftMouseDown) click = e.locationInWindow;
else "yourDelta" = click - e.locationInWindow; // pseudoCode
return e;
}];
„yourDelta” oznacza przesunięcie tego punktu początkowego od aktualnej lokalizacji ... można również osiągnąć podobne wyniki w przypadku zdarzeń przewijania, monitorując NSEventScrollWheelMask
... i patrząc na wartości e.deltaX
i e.deltaY
.
Edycja: Nie jestem zaznajomiony z obsługą zdarzeń na iOS .., ale ta sama technika może być stosowana z normalnymi procedurami obsługi zdarzeń ... tj.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)e {
click = [e locationInView:_yourView];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent*)e {
"yourDelta" = click - [e locationInView:_yourView]; // pseudoCode
}
Co do „poszukiwania” animacja .. Jednym z możliwych sposobów jest po prostu [layer addAnimation:theNewAnimation]
, wykorzystując swoje wcześniejsze toValue
„s, ale zamiast oparcie fromValue
” s 0, czy Twój model layer
... użytku zamiast tego wartości layer.presentationLayer
? Trudno powiedzieć, nie widząc pełnej zawartości twojego CAKeyframeAnimation
.
To oznaczono jako "kakao-touch". Założono, że OP szukał sposobu, aby to zrobić na urządzeniu z systemem iOS. Czy istnieje sposób "wyszukiwania" CAKeyframeAnimation na podstawie wartości delta? – Marc
- 1. Jak mogę pokazać/ukryć pasek stanu na stronie ViewController za pomocą gestu dotykowego (iOS8/Swift)
- 2. Jak animować CATransform3D za pomocą CAKeyframeAnimation?
- 3. Ograniczanie ruchomego widoku za pomocą gestu Przesuwanie
- 4. Rysowanie prostokąta za pomocą gestu przesuwania
- 5. Jak kontrolować szerokość echa za pomocą Sweave
- 6. Jak kontrolować zmienną Sassa za pomocą javascript
- 7. Xcode: Jak zmienić wartość UIPageControl za pomocą gestu przeciągnięcia?
- 8. jak wypełnić kolor w białych przestrzeniach za pomocą zdarzenia dotykowego?
- 9. Poszerzanie/zwijanie CardView za pomocą gestu kliknięcia lub przesunięcia (Android)?
- 10. Symulowanie gestu potrząsania za pomocą testu Swift 2.0 UI
- 11. Jak mogę kontrolować przepływ programu za pomocą zdarzeń i obietnic?
- 12. JavaScript: Jak kontrolować przepływ za pomocą asynchronicznego drzewa rekurencyjnego?
- 13. Jak kontrolować i klikać elementy za pomocą Geb?
- 14. Jak kontrolować liczbę stron do wydrukowania za pomocą javascript?
- 15. Jak kontrolować operacje Bluetooth za pomocą powłoki adb?
- 16. Jak kontrolować głośność multimediów?
- 17. Czy mogę kontrolować tworzenie obiektów za pomocą MEF?
- 18. Opóźnienia CAKeyFrameAnimation przed powtórzeniem
- 19. Opóźnienie CAKeyframeAnimation przed powtórzeniem
- 20. Jak kontrolować odstęp między paskami?
- 21. CAKeyframeanimation move UIView wzdłuż ścieżki
- 22. UIButton - zmiana obrazu dotykowego
- 23. Jak kontrolować zachowanie json_encode?
- 24. Jak kontrolować wysokość granicy?
- 25. Obróć widok układu Android o jego środku za pomocą słuchacza dotykowego
- 26. DataBind WinForm kontrolować za właściwość visible
- 27. Jak kontrolować liczbę wierszy w JasperReports
- 28. Jak kontrolować Indeksowanie pola w lucene 4.0
- 29. Jak kontrolować lakierowanie i przeglądarkę za pomocą Cache-Control: nagłówek max-age w środowisku Rails?
- 30. jak kontrolować własność plików automatycznie pchanych do repozytorium git za pomocą haków commitów?
Masz na myśli emisję cząstek z miejsca, w którym użytkownik przeciąga palec? Co próbujesz? –
Jestem bardzo nowy w celu-c i nie mam pojęcia, jak prowadzić animację (niech to będzie CAEmitterLayer lub UIImageView lub warstwa) wzdłuż ścieżki z ruchem palca. Byłbym szczęśliwy z każdej małej podpowiedzi ... Próbowałem użyć obrazu maski, który leżałem na ścieżce, która mówiła mi, że palec był na lub obok ścieżki, ale cząsteczki również emitują poza ścieżką. – headkit
Dlaczego po prostu nie zmienić pozycji f warstwy emitera na pozycję palca użytkownika, ustawiając właściwość position? Uzyskanie punktu, w którym użytkownik nie jest trudny. –