我正在尝试实现某种“视差”效果。
比方说,我在屏幕顶部有一个图像,高度为180,下面有一个滚动视图。
初始状态为:
当我向上滚动超过32像素时,图像应“停靠”起来,例如将其高度设置为45像素,然后进行动画处理。
最终状态应为:
在scrollViewDidEndDragging中,我想将图像停靠在动画中。我使用了以下代码:
self.imageConstraint?.constant = 45.0
UIView.animate(withDuration: 1.0,
delay: 0,
options: [.beginFromCurrentState,
.allowAnimatedContent,
.allowUserInteraction],
animations: {
self.superview?.layoutIfNeeded()
}, completion: { _ in
completion()
})
问题是图像设置为45高度,但仅图像,并且留有空白(初始高度-最终高度),并且该空间已设置动画。 基本上,在不减速的情况下,当scrollDidEndDragging时,我想为图像的高度设置动画,这不能按预期工作。
看起来像这样:
我做错了什么?
答案 0 :(得分:0)
以这种方式编写代码,希望它可以正常工作
UIView.animate(withDuration: 0.5)
{
self. self.imageConstraint.constant = 45.0
self.view.layoutIfNeeded();
}
如果没有,请让我。谢谢