关于iOS动画,我是您的入门者。我知道您可以制作固定的(非手势控制的)动画,在固定的时间段内为视图的属性设置动画。但是,这与使用手势控制动画完全不同。
您知道如何折叠一张8x11纸并将其放入信封并邮寄...将其折叠三分之二。好吧,基本上,我的老板想要一个界面,使其每次2/3一次显示在屏幕上,而另外三分之一则是用手势在屏幕上滑动/滑动。因此,基本上,根据您向左或向右滑动,屏幕将显示三分之一和二,三分之二和三。
现在,这还意味着要执行诸如贴紧/橡皮筋,弹跳,加速/减速,发粘的操作。我不知道从哪里开始做这样的事情。我假设这些类型的动作尚未内置在任何iOS框架中,如果您要捕捉/橡皮筋,弹跳,加速/减速,则必须完全从头开始进行编程。
就像视图如何知道我的人为捕捉/弹跳点以及粘滞行为一样,这样您可以在到达任意位置之前将手指从屏幕上移开,然后视图会弹回到其先前位置。
您会在哪里建议我开始研究如何用手势驱动动画?
我建议您看一下Core Animation。您可以制作一些非常复杂的动画,包括加速,减速,反弹等。
您可以轻松创建一个UIPanGestureRecognizer来跟踪某人何时在屏幕上拖动手指。将动作附加wasDragged
到手势上
从文档中:
平移手势是连续的。当允许的最小手指数(minimumNumberOfTouches)移动到足以视为平移时,它开始(UIGestureRecognizerStateBegan)。当手指移动而至少按下最小手指数时,它会更改(UIGestureRecognizerStateChanged)。当所有手指都抬起时,它结束(UIGestureRecognizerStateEnded)。
在wasDragged
检查actionRecognizer处于什么状态时。如果状态为UIGestureRecognizerStateChanged,则可以调整UIView的大小或位置,使其看起来就像您将其拖出一样。如果状态为UIGestureRecognizerStateEnded,请检查手势结束的点是否大于阈值(例如,在屏幕的一半)。如果不是,则使用动画将视图捕捉回,如果是,则将视图捕捉到所需位置。
希望这是有道理的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句