我在tableView上面有一个平移手势,并实现了以下委托方法以保持原始滚动行为。
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
在平移手势选择器中,我正在使用一些与问题无关的计算来修改约束。这些约束立即更新,无需调用layoutIfNeeded()
。
当用户滚动速度超慢时,这很好,但我希望在偏移量大于或等于94像素时为约束消失设置动画。发生这种情况时,我总是将约束设置为94。
我尝试在动画块中设置常量值,使用UIView.beginAnimations,在异步主线程上调用它,但所有这些都立即应用约束常量。
当我修改帧原点时,动画可以正常工作。如何使用约束使动画工作?我不喜欢更新帧起源,因为我正在使用AutoLayout。
答案 0 :(得分:0)
如果您从父视图中调用动画块中的layoutIfNeeded()
,我找到了解决方案。它会变得动画:)