由平移手势触发的Swift 4动画约束

时间:2017-10-11 08:42:53

标签: swift

我在tableView上面有一个平移手势,并实现了以下委托方法以保持原始滚动行为。

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    return true
}

在平移手势选择器中,我正在使用一些与问题无关的计算来修改约束。这些约束立即更新,无需调用layoutIfNeeded()

当用户滚动速度超慢时,这很好,但我希望在偏移量大于或等于94像素时为约束消失设置动画。发生这种情况时,我总是将约束设置为94。

我尝试在动画块中设置常量值,使用UIView.beginAnimations,在异步主线程上调用它,但所有这些都立即应用约束常量。

当我修改帧原点时,动画可以正常工作。如何使用约束使动画工作?我不喜欢更新帧起源,因为我正在使用AutoLayout。

1 个答案:

答案 0 :(得分:0)

如果您从父视图中调用动画块中的layoutIfNeeded(),我找到了解决方案。它会变得动画:)