gpt4 book ai didi

objective-c - 如何用触摸手势控制 CAKeyframeAnimation?

转载 作者:太空狗 更新时间:2023-10-30 03:45:37 25 4
gpt4 key购买 nike

我有一个 CAEmitterLayer 沿贝塞尔曲线路径(闭合形式,如“8”,四个控制点)动画,带有 CAKeyframeAnimation。现在我想通过触摸手指沿着(但不一定在)路径滑动来控制动画。这怎么可能,甚至可能吗?

最佳答案

制作一个 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.deltaXe.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],使用你以前的 toValue,而不是基于fromValue 的 0,或者您的模型 layer... 改用您的 layer.presentationLayer 值?如果没有看到您的 CAKeyframeAnimation 的全部内容,很难说。

关于objective-c - 如何用触摸手势控制 CAKeyframeAnimation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10915849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com