ios - 动画 UIImageView 高度约束空白
问题描述
我正在尝试实现某种“视差”效果。
假设我在屏幕顶部有一个图像,高度: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 我想为图像的高度设置动画时,这不能按预期工作。
看起来像这样:
我做错了什么?
解决方案
以这种方式编写你的代码,它会很有希望地工作,
UIView.animate(withDuration: 0.5)
{
self. self.imageConstraint.constant = 45.0
self.view.layoutIfNeeded();
}
如果没有,请让我。谢谢
推荐阅读
- python - 如何以正确的方式确定python中的碰撞
- sql - 如何使用 CASE 语句设置局部变量
- java - 如何在 Java 中使用来自 Azure KeyVault 的证书设置 SSLContext
- python - 使用子进程从 python 执行时,ssh 未被识别为命令?
- python - keras 中的 y_pred 是什么?
- python - 计算 DNA 序列中的三联体
- javascript - 如何使用ajax在mvc中的动态复选框中检查多个数据
- python - Python __init__.py,污染较少的命名空间
- c# - 如何使用C#在excel中复制垂直一行以粘贴到同一个文件中的另一个垂直
- excel - Excel - 最小值和 If 语句 - 日期错误