2013-09-24 26 views
2

我使用的是UIDynamicAnimator的UISnapBehavior两个状态间的动画这些圈子: http://cl.ly/image/1G3p1B2x2v14/Image%202013.09.24%2011%3A35%3A43%20AM.png如何在UISnapBehavior动画期间保持UIScrollView内的相对滚动位置?

那伟大工程。不过,我然后把它放在一个UIScrollView里面。当我滚动前UISnapBehavior动画已经“定居”(似乎有一个延迟,它看起来后像它完成,当它实际上完成),圆圈失去其相对定位到滚动容器: http://cl.ly/image/1E0I3l460J1V/Image%202013.09.24%2011%3A32%3A10%20AM.png

当我在动画“结算”后等待几秒钟后滚动,圆圈不会丢失它们的相对位置

我假设这是因为UISnapBehavior使用固定位置动画,然后在完成后恢复到相对定位,但我不确定这是否属实。

回答

2

我在包含UIScrollView的UIView上设置了UIDynamicAnimator。将UIDynamicAnimator initWithTarget设置为UIScrollView似乎修复了它。

+1

将动画添加到滚动视图的contentView而不是滚动视图本身可能会更好?只是一个想法。 –

1

尝试将您的圈子放在UIView的子视图UIScrollView而不是滚动视图本身。我见过它做过一些奇怪的事情。

+0

其实我找到了问题。我在包含UIScrollView的UIView上设置了UIDynamicAnimator。将UIDynamicAnimator initWithTarget设置为UIScrollView似乎修复了它! –

+0

太棒了!不要忘记回答你的问题:) –