UiView.animateWithDuration不动画Swift3

时间:2017-01-12 01:09:44

标签: ios animation uiview swift3

我正在尝试使用下面的代码从底部为所有视图插座设置动画(插座应该来自底部并在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();
    })
    

2 个答案:

答案 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;