如何将手势和动画结合在一起

时间:2016-05-11 17:30:08

标签: ios objective-c animation

在iOS动画方面,我是初学者。 我知道你可以做固定(非手势控制)动画,你可以在一段固定的时间内为视图的属性设置动画。然而,这与使用手势控制动画完全不同。

你知道如何将一张8x11纸张折叠放入信封并邮寄给它......你将它折叠成三分之一。基本上,我的老板想要一个界面,这样它的2 / 3rds一次显示在屏幕上,另外三个是用手势在屏幕上滑动/关闭。所以基本上,屏幕会显示三分之一1和2,或三分之二和三,这取决于你是向左还是向右滑动。

现在这也意味着做一些事情,比如啪啪/橡皮筋,弹跳,加速/减速,粘性。我不知道哪里开始做这样的事情。我假设这些类型的动作还没有内置到任何iOS框架中,如果你想要捕捉/橡皮筋,弹跳,加速/减速,你必须完全从头开始编程。

类似于视图如何知道我的人工快照/反弹点以及粘性行为,这样您就可以在到达任意位置之前将手指从屏幕上移开,并且视图会反弹回到之前的位置。

你会在哪里建议我开始研究如何使用手势来制作动画?

1 个答案:

答案 0 :(得分:1)

我建议你看一下核心动画。你可以做一些非常复杂的动画,包括加速,减速,反弹等。

您可以轻松创建UIPanGestureRecognizer来跟踪某人是否有人在屏幕上拖动手指。将动作wasDragged附加到您的gestureRecognizer

来自文档:

  

平移手势是连续的。当允许的最小手指数(minimumNumberOfTouches)移动到足以被视为平移时,它开始(UIGestureRecognizerStateBegan)。当手指移动时,它会改变(UIGestureRecognizerStateChanged),同时至少按下最小数量的手指。当所有手指都被抬起时,它结束(UIGestureRecognizerStateEnded)。

wasDragged中检查gestureRecognizer所处的状态。如果state是UIGestureRecognizerStateChanged,那么你可以调整你的UIView的大小或位置,使它看起来就像你将它拖出来一样。如果state为UIGestureRecognizerStateEnded,请检查手势结束的点是否大于阈值点(例如,屏幕中间)。如果不是,则使用动画捕捉视图,如果是,则将视图捕捉到您想要的位置。

希望这是有道理的。