动画高度约束无法按预期工作

问题描述

我正在尝试使用布局约束为 ViewController 中的视图设置动画。我的目标是将视图的高度从 0 转换为 finalHeight,以使视图从底部“出现”。

现在我正在测试使视图从 90 点增长到 150 点,即使动画按预期工作,视图的背景也没有按预期运行。

当视图增长时,视图底部粘在屏幕底部,问题是视图的原始高度阻止(我猜)背景颜色填充新高度,然后动画不是它应该是什么。

以下是当前动画的示例:

view

如您所见,图像似乎在平移 y 轴,但实际上,它正在为视图高度约束设置动画。

这是代码

    func didRequestMatch(friend: Friend) {
        self.friendChallengeLabel.text = friend.name.isEmpty ? friend.email : friend.name
        self.challengeViewHeight.constant = 140
        UIView.animate(withDuration: 2) {
            self.view.layoutIfNeeded()
        }
    }

为了显示动画实际上是在改变视图的高度而不是 y 轴,这里是调试视图层次结构的屏幕截图

view_h

在这里你实际上可以看到新视图的高度是 140

Printing description of $16:
<UIView: 0x7fc119419eb0; frame = (87.5 527; 200 140); clipsToBounds = YES; autoresize = RM+BM; autoresizesSubviews = NO; layer = <CALayer: 0x600002b66ec0>>

创建视图的方式来自 Storyboard,如下所示:

constraints

你知道哪里出了问题吗?

非常感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)