动画UIImageView高度约束空白

时间:2018-07-13 12:48:18

标签: ios swift animation imageview constraints

我正在尝试实现某种“视差”效果。

比方说,我在屏幕顶部有一个图像,高度为180,下面有一个滚动视图。

初始状态为:

state initial

当我向上滚动超过32像素时,图像应“停靠”起来,例如将其高度设置为45像素,然后进行动画处理。

最终状态应为:

state final

在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时,我想为图像的高度设置动画,这不能按预期工作。

看起来像这样:

during animation

我做错了什么?

1 个答案:

答案 0 :(得分:0)

以这种方式编写代码,希望它可以正常工作

UIView.animate(withDuration: 0.5)
{
    self. self.imageConstraint.constant = 45.0
    self.view.layoutIfNeeded();
}

如果没有,请让我。谢谢