gpt4 book ai didi

ios - 如何动画相关约束

转载 作者:行者123 更新时间:2023-12-01 17:38:20 26 4
gpt4 key购买 nike

我正在尝试同时为同一 View 的 2 个约束(确定 y 轴和高度上的位置)设置动画。问题是,它们是相互依赖的,我的意思是,它们一起工作以确定相同的属性。图片显示了我的意思。

enter image description here

2 个箭头描绘了约束。上一个设置上 View 和底部 View 之间的距离,底部约束设置底部布局指南和底部 View 之间的距离。底部 View 从 View 下方滑动并停在您当前看到的位置。高度是使用动画约束设置的。这是我用来制作动画的代码:

        self.toBottomConstraint.constant = 53
self.toUpperConstraint.constant = 15

UIView.animateWithDuration(0.2, delay: 0, usingSpringWithDamping: 20, initialSpringVelocity: 20, options: UIViewAnimationOptions.CurveLinear, animations: {
self.view.layoutIfNeeded()
}, completion: {_ in})

代码确实有效,但我得到了这个 错误。

无法同时满足约束。
以下列表中的至少一个约束可能是您不想要的。试试这个:(1)查看每个约束并尝试找出您不期望的; (2) 找到添加了一个或多个不需要的约束的代码并修复它。 (注意:如果您看到不理解的 NSAutoresizingMaskLayoutConstraints,请参阅 UIView 属性 translatesAutoresizingMaskIntoConstraints 的文档) ...
……
……
……

那么我应该如何为 2 个依赖约束设置动画呢?

编辑://上 View 约束。

enter image description here

//底 View 约束。 BuyButton 和 Collection View 嵌套在底部 View 中

enter image description here

最佳答案

根据您制作动画的方式,实际上有无数种方法可以在动画前后设置约束。最重要的是,您需要确定动画之前的约束是什么,以及动画之后的约束是什么。例如:

self.toBottomConstraint.constant = 153
self.toUpperConstraint.constant = 0

UIView.animateWithDuration(0.2, delay: 0.0, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in
self.toBottomConstraint.constant = 53
self.toUpperConstraint.constant = 15
self.view.layoutIfNeeded()
}, completion: nil)

上面的代码将动画底部 View 自下而上。

顺便说一句,冲突约束的控制台警告消息可能是由您在底 View 上设置的除顶部和底部约束之外的其他约束引起的,例如,您可能为底 View 配置了高度约束,在这种情况下,您需要在动画后更新高度约束。

关于ios - 如何动画相关约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31796264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com