我正在尝试使用下面的代码从底部为所有视图插座设置动画(插座应该来自底部并在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();
})
答案 0 :(得分: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();
})
}
答案 1 :(得分:0)
您需要删除self.imageView.frame.origin.y = 1024;
,并在动画块
self.topConstraint.constant = 1024;