如何通过触摸和滑动来移动和滑动UIView?

时间:2009-07-16 15:06:40

标签: objective-c iphone cocoa-touch animation uiview

我试图为一种可拖动的UIView制作动画,其行为应该是这样的:

  • 在用户触摸后沿着屏幕拖动。
  • 检测滑动触摸并以初始速度自动拖动,并在一段时间后停止加速。

类似于在照片中移动,然后通过它移动到屏幕的一侧。

有关此的任何提示吗?

3 个答案:

答案 0 :(得分:5)

大约3个星期前(我)提出了similar question。虽然我收到的一些答案有点偏离,但最好的建议是:1-研究Apple的MoveMe示例,了解如何触摸物体并将其拖动。 2-你通过基本上将 [触摸locationInView:self.view] touchesEnded中的 [touch previousLocationInView:self.view] 进行比较来“抛出”对象(也可以存储对 touchesBegan 中的第一次触摸的引用,但我发现用户可能暂停时没那么有用)使用每个的时间戳可以确定滑动(轻弹)的方向和速度和使用它们发送你的小UIView飞来飞去。显然你想施加力(“摩擦力”)或其他任何东西来减速它,这样它就不会飞到你的屏幕上......

答案 1 :(得分:0)

我不确定。但也许你可以使用UIScrollView对象的减速属性。将您的imageView放在UIScrollView中并使用此属性。它是一个BOOL var,如果用户没有拖动内容但是仍在进行滚动,则返回值为YES。

答案 2 :(得分:0)

查看Apple的MoveMe示例项目(可能需要注册)。它演示了如何使标语跟随触摸以及根据不同的触摸进行变换。

基本上,我们的想法是你覆盖UIResponder触摸方法来分析设备接收的触摸类型,然后移动对象以跟随用户的手指或根据它是否是一个方向给它一个速度慢速拖动或滑动。然后,您可以使用Core Animation为对象框架的更改设置动画。