ios - Swift - 仅对特定约束进行动画处理
问题描述
我正在尝试为我的 ViewController 中的约束设置动画。为了做到这一点,我在我的代码中添加了这一行:我只是想改变 UIView() 的高度(从 0 到 100)
barHeight.constant = CGFloat(100)
UIView.animate(withDuration: 2) {self.view.layoutIfNeeded()}
问题是,有了这条线,所有的约束都是动画的,这不是我想要的。
你知道我怎样才能只为特定约束而不是其他约束设置动画吗?
解决方案
在编辑要设置动画的约束之前调用 layoutSubviews。这将导致在没有任何动画的情况下应用任何挂起的布局更新,然后您可以使用动画更改下一个约束。
像这样:
self.view.layoutSubviews()
barHeight.constant = CGFloat(100)
UIView.animate(withDuration: 2) {self.view.layoutIfNeeded()}
推荐阅读
- cython - 如何遍历其他结构中包含的对象并调用它们的方法(让 Cython 知道它们)?
- linux-kernel - 正式的 Linux 内核内存模型
- python - 502 Bad Gateway:注册的端点未能处理请求。: Python
- php - Clickatell parseReplyCallback 返回null?
- c# - 当其中一个异步调用完成时向调用者返回响应
- c# - 如何将此 JSON 对象转换为 C# 代码?
- python - 通过标题将 docx 拆分为 Python 中的单独文件
- python - 屏蔽熊猫数据帧中最大值之前出现的所有值
- c++ - 如何让 Q_PROPERTYs 在设计视图中显示
- xamarin - 如何在 Xamarin Forms 应用程序中的 TabbedPage 栏项上设置 AutomationId 以进行 UI 测试