在没有UIScrollView的iphone应用中模拟反弹效果
问题描述:
我正在使用平移手势在我的应用中拖动项目。我知道我可以使用UIScrollView在拖动边缘时获得“反弹”效果。然而,这看起来像一个黑客,所以我想找到一种方法来手动拖动一个项目(设置其框架或中心点)的效果。我很好奇,如果有一个标准的方法,或加速框架中的物理库,就像那些不需要我实现我自己的物理引擎的东西。在没有UIScrollView的iphone应用中模拟反弹效果
答
标准UIView动画曲线是使用加速/减速曲线的曲线,它应该给出一个很好的“反弹”动作。
这真的很容易使用。一旦你决定要“弹回”到一个位置,这样做:
[UIView beginAnimations:nil context:nil];
CGRect newFrame = viewToAnimate.frame;
newFrame.origin.x = snapBackXcoordinate;
viewToAnimate.frame = newFrame;
[UIView commitAnimations];
完全效仿的UIScrollView您还需要你停止绵延之前设置一个“最大拉伸”的距离。
但为什么重新发明*?您提供的UIKit组件可供使用。如果把你的视图放到UIScrollView中,就可以使用它,继续使用它。节省您开发和调试时间。
我明白你的意思,不要重新发明*。但是我希望只在向一个方向拖动时发生反弹 - 左 - 当水平滚动时,UIScrollView会左右反弹。 – akaru 2011-02-14 21:32:45