如何在我自己的自定义视图中重现iPhone UisCrollView的轻微滚动行为?
-
16-09-2019 - |
题
我想复制UISCrollview的轻弹到滚动行为,但我不想使用(或不能使用)该类。我能做些什么?
解决方案
好的,我通过实现自己的库来捕捉UISCrollView的动态来回答这一点。
我的代码有用的是,它独立于坐标系,动画率和您使用的特定UI类。它可以很容易地嵌套在您选择的自定义视图类中。
iPhone的默认轻弹到滚动行为很有趣。如果您将手指固定很长时间并以各种方向移动,您会发现只有最后一个方向用于计算滚动运动。
但是,如果您尝试自己构建此代码,但是您会很快发现,仅使用最后两个点来计算运动方向不会削减它。取而代之的是,我的代码保持了短暂的触摸历史,并使用线性插值来确定触摸“本来就是”的位置。该插值点被用作计算运动矢量的基础。这导致了非常令人愉悦的互动。
该代码可在GitHub上找到: http://gist.github.com/100855. 。它是根据BSD许可发布的。
其他提示
那么,uiscrollview对您不起作用呢?那堂课非常灵活...
戴夫(Dave),我看到您已经用一些代码回答了自己的问题,但是没有设置以下内容给您您的需求:
myScrollView.bounces = YES;
myScrollView.pagingEnabled = YES;
myScrollView.directionalLockEnabled = YES;
具体来说,听起来您已经重新完成了 directionLockEnabled
. 。也许了解为什么您不能使用UISCrollView是一个更有趣的问题:-)
这很酷!我在一个应用程序中使用了它,在该应用程序中,我的可滚动视图是1902 - 2037年范围内的一天的图形数据,因此UISCrollView不会有效。
不隶属于 StackOverflow