UISnapBehavior动画故障

时间:2016-10-22 21:03:23

标签: autolayout uikit-dynamics uidynamicanimator uisnapbehavior

当使用UISnapBehavior将视图重置到屏幕中心时,我得到了预期的反弹效果。但是在滚动UIScrollView之后,UIScrollView是被捕捉的视图的子视图,UISnapBehavior阻尼似乎有不同的基础计算。

我的快照行为是这样创建的:

    guard let recognizerView = recognizer.view else { return }
    let snapBehavior = UISnapBehavior(item: recognizer.view.superview!, snapTo: CGPoint(x: recognizerView.superview!.frame.width / 2, y: recognizerView.superview!.frame.height / 2))
    snapBehavior.damping = 0.1
    animator.addBehavior(snapBehavior)

在与作为RecognizerView的子视图的scrollview交互之前,snapBehavior呈现出非常夸张的反弹效果(这是期望和预期的行为),但在与scrollview交互之后,第二次触发snapBehavior效果要快得多(尽管使用完全相同的阻尼常数,但阻尼较小。

我认为这与一些自动布局错误有关,因为滚动视图定位为自动布局,其内容大小是通过自动布局约束动态计算的。

有趣的是,删除滚动视图会导致动态动画再次正常衰减。

0 个答案:

没有答案