Swift 使用约束 添加UIView动画

Swift 使用约束 添加UIView动画,第1张

概述最近在使用Swift编写程序时 使用UIView动画约束执行动画遇到了一个小坑 1.在控制器中添加一个 容器view, 容器view的约束是宽高都是300/ 水平居中/ 竖直居中 2. 在容器view中添加一个imageView, imageView的约束是:和容器view等宽等高 / 水平居中 /顶部对齐 着这里希望通过修改imageView的顶部约束来执行动画 private func s

最近在使用Swift编写程序时 使用UIVIEw动画 对约束执行动画遇到了一个小坑

1.在控制器中添加一个 容器vIEw,容器vIEw的约束是宽高都是300/ 水平居中/ 竖直居中

2. 在容器vIEw中添加一个imageVIEw,imageVIEw的约束是:和容器vIEw等宽等高 / 水平居中 /顶部对齐

着这里希望通过修改imageVIEw的顶部约束来执行动画

private func startAnimation(){                self.imageVIEwCons.constant = -self.contentVIEwCons.constant;          self.imageVIEw.layoutIfNeeded();                    UIVIEw.animateWithDuration(2.0,animations: { () -> VoID in              self.imageVIEwCons.constant = self.contentVIEwCons.constant;              UIVIEw.setAnimationRepeatCount(MAXfloat);              self.imageVIEw.layoutIfNeeded();                            }) { (_) -> VoID in                            };      }

结果是直接停止在最终状态.

因为在使用约束添加动画的时候,有个原则就是动画要添加到当前视图的父视图上

所以我们需要修改更新约束的对象为父视图

private func startAnimation(){                    self.imageVIEwCons.constant = -self.contentVIEwCons.constant;          self.contentVIEw.layoutIfNeeded();                    UIVIEw.animateWithDuration(2.0,animations: { () -> VoID in              self.imageVIEwCons.constant = self.contentVIEwCons.constant;              UIVIEw.setAnimationRepeatCount(MAXfloat);              self.contentVIEw.layoutIfNeeded();                            }) { (_) -> VoID in                            };      }

这样动画既可以正常执行了.

总结

以上是内存溢出为你收集整理的Swift 使用约束 添加UIView动画全部内容,希望文章能够帮你解决Swift 使用约束 添加UIView动画所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1065942.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存