我有一個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. 帶觸摸手勢的XCTest
- 7. 手機觸摸屏的滑動手勢
- 8. 翻譯觸控手勢鼠標手勢
- 9. OSX - 禁用全系統觸摸手勢
- 10. 用觸摸手勢旋轉UIImageView - iphone dev
- 11. 在wxPython中使用觸摸板手勢?
- 12. 用觸摸手勢滑動視圖
- 13. 同時使用觸摸和觸摸手勢識別器
- 14. 使用位置查找手勢觸摸的座標觸摸
- 15. 觸摸手勢支持WPF應用程序中的WinForms控件
- 16. Flexslider的手動觸摸控制
- 17. Android中的全局觸摸手勢?
- 18. as3觸摸 - 分析長按手勢
- 19. 多點觸摸滑動手勢
- 20. 面具觸摸手勢 - 安卓
- 21. Android多點觸摸手勢識別
- 22. 整個屏幕的觸摸手勢
- 23. 增加觸摸手勢區域爲UILabel
- 24. WP7:有關觸摸手勢的問題
- 25. 檢測簡單的觸摸手勢
- 26. 在MKPolyline上檢測觸摸手勢
- 27. WP7觸摸屏手勢處理
- 28. 移動,縮放和觸摸手勢
- 29. 重裝的tableview和觸摸手勢
- 30. iOS - 將觸摸手勢添加到UITextField
你的意思是從用戶拖動手指的地方發射粒子?另外,你有什麼嘗試? –
我對objective-c非常陌生,不知道如何通過手指觸摸移動沿着路徑引導動畫(讓它成爲CAEmitterLayer或UIImageView或圖層)。我會很高興與每一個小暗示... 我試圖使用掩模圖像,我躺在路徑告訴我的手指是或路徑上,但除此之外粒子也發出的路徑。 – headkit
爲什麼不通過設置位置屬性來將發射層的位置更改爲用戶手指的位置?獲得用戶不難的位置。 –