UIView.animatewithDuration 按钮激活时不显示动画

UIView.animatewithDuration not animating when activated by button

所以我有一堆箭头,我在 viewDidLoad() 函数中转换一次,如下所示:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    UIView.animateWithDuration(2.0) {

        self.Arrow1.transform = CGAffineTransformMakeTranslation(-20, 0)
        self.Arrow1.transform = CGAffineTransformRotate(self.Arrow1.transform, -66.0 * CGFloat(M_PI)/180.0)


        self.Arrow2.transform = CGAffineTransformMakeTranslation(-9, -8)
        self.Arrow2.transform = CGAffineTransformRotate(self.Arrow2.transform, -70.0 * CGFloat(M_PI)/180.0)

        // And So On...

    }

}

但后来我尝试按一下按钮移动它们:

   @IBAction func searchPressed(sender: AnyObject) {
        UIView.animateWithDuration(5.0) {
            self.Arrow1.transform = CGAffineTransformTranslate(self.Arrow1.transform, -100, 0)

            self.Arrow2.transform = CGAffineTransformTranslate(self.Arrow2.transform, 0, 100)

           //And So on... (They're 9 Arrows)

        }
    }

但是它没有动画,或者我认为它有,但真的很奇怪。它立即移动很多,然后从那里开始动画。我不明白为什么或如何解决它。 Here is what happens

同时将 self.view.layoutIfNeeded 放在块内。

对于陷入同样困境的未来旅行者:如果视图也是使用自动布局的视图的子视图,则您必须使用自动布局来控制视图。否则你会得到我得到的奇怪结果。

Here 是关于如何做到这一点的优秀指南。