UiView.animateWithDuration 不为 Swift3 设置动画
Posted
技术标签:
【中文标题】UiView.animateWithDuration 不为 Swift3 设置动画【英文标题】:UiView.animateWithDuration Not Animating Swift3 【发布时间】:2017-01-12 01:09:44 【问题描述】:我正在尝试使用以下代码从底部为所有视图插座设置动画(插座应来自底部并在 1 秒内填充视图)。但是,它没有动画,无论我投入多少时间,一切都会立即显示出来。我注意到以下内容:
不遵守时长 甚至不考虑延迟动画没有发生。组件立即显示
覆盖 func viewDidAppear(_ animated: Bool)
super.viewDidAppear(animated);
UIView.animate(withDuration: 1, animations:
self.topConstraint.constant = 0;
self.imageView.frame.origin.y = 1024;
self.view.setNeedsLayout();
)
【问题讨论】:
1.没用,2。1-2秒,3。我已经知道了。谢谢 【参考方案1】:我自己解决了这个问题。
super.viewDidAppear(animated);
UIView.animate(withDuration: 1, animations:
self.topConstraint.constant = 0;
self.view.layoutIfNeeded()
self.imageView.frame.origin.y = 1024;
self.view.setNeedsLayout();
)
【讨论】:
【参考方案2】:需要去掉self.imageView.frame.origin.y = 1024;
,在动画块前设置self.topConstraint.constant = 1024;
【讨论】:
以上是关于UiView.animateWithDuration 不为 Swift3 设置动画的主要内容,如果未能解决你的问题,请参考以下文章