我有一個CAEmitterLayer
動畫沿bezier路徑(封閉的形式,如'8',四個控制點之一)與CAKeyframeAnimation
。現在我想通過沿着(但不一定是)路徑上的觸摸手指滑動來控制動畫。這怎麼可能,這甚至有可能?如何用觸摸手勢控制CAKeyframeAnimation?
6
A
回答
1
做一個CGpoint click;
變量來記住您最初的「拖」點,然後創建一個本地NSEvent
處理器...
[NSEvent addLocalMonitorForEventsMatchingMask: NSMouseMovedMask
| NSLeftMouseDownMask
handler:^(NSEvent *e) {
if (e.type == NSLeftMouseDown) click = e.locationInWindow;
else "yourDelta" = click - e.locationInWindow; // pseudoCode
return e;
}];
「yourDelta」是從當前位置即初始位置的偏移...您還可以通過監視NSEventScrollWheelMask
...並查看e.deltaX
和e.deltaY
值來實現滾動事件的類似結果。
編輯:我不熟悉iOS上的事件處理..但同樣的技術可以應用於普通事件處理程序...即。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)e {
click = [e locationInView:_yourView];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent*)e {
"yourDelta" = click - [e locationInView:_yourView]; // pseudoCode
}
至於「求是」動畫..一種可能的方式是簡單地[layer addAnimation:theNewAnimation]
,使用「但而不是基礎的fromValue
S」 0,或者你的模型layer
...使用。你以前toValue
你的layer.presentationLayer
值呢?沒有看到您的CAKeyframeAnimation
的完整內容很難說。
+0
這被標記爲'cocoa-touch'我假設OP正在尋找一種方法在iOS設備上執行此操作。 有沒有辦法根據增量值「尋找」CAKeyframeAnimation? – Marc
相關問題
- 1. 持續的手勢/控制觸摸
- 2. 在CALayer上觸摸手勢
- 3. 傳遞觸摸手勢
- 4. 觸摸手勢的定義
- 5. 手機觸摸屏的滑動手勢
- 6. 在wxPython中使用觸摸板手勢?
- 7. 用觸摸手勢旋轉UIImageView - iphone dev
- 8. 用觸摸手勢滑動視圖
- 9. 使用位置查找手勢觸摸的座標觸摸
- 10. 觸摸手勢支持WPF應用程序中的WinForms控件
- 11. 面具觸摸手勢 - 安卓
- 12. Android中的全局觸摸手勢?
- 13. 重裝的tableview和觸摸手勢
- 14. 增加觸摸手勢區域爲UILabel
- 15. 檢測簡單的觸摸手勢
- 16. WP7觸摸屏手勢處理
- 17. WP7:有關觸摸手勢的問題
- 18. 移動,縮放和觸摸手勢
- 19. iOS - 將觸摸手勢添加到UITextField
- 20. 如何在SciSurface修飾符上禁用觸摸手勢
- 21. 用手勢控制視頻
- 22. 多點觸控:當手指觸摸屏幕用一根手指觸摸已經
- 23. 手勢識別器完成後將觸摸傳遞給父視圖控制器
- 24. Silverlight 4:支持手勢和觸摸事件的任何觸摸庫?
- 25. 如何識別從UITouch觸摸手勢裏面
- 26. 如何避免UIView觸摸手勢重疊
- 27. 如何手勢識別和觸摸優先在一個UIView
- 28. 服務如何監聽觸摸手勢/事件?
- 29. 如何在Google VR iOS Pod上添加觸摸手勢?
- 30. 如何處理UIButton上的觸摸事件和手勢事件?
你的意思是從用戶拖動手指的地方發射粒子?另外,你有什麼嘗試? –
我對objective-c非常陌生,不知道如何通過手指觸摸移動沿着路徑引導動畫(讓它成爲CAEmitterLayer或UIImageView或圖層)。我會很高興與每一個小暗示... 我試圖使用掩模圖像,我躺在路徑告訴我的手指是或路徑上,但除此之外粒子也發出的路徑。 – headkit
爲什麼不通過設置位置屬性來將發射層的位置更改爲用戶手指的位置?獲得用戶不難的位置。 –