UIView.animatewithDuration在按钮激活时不动画

时间:2016-05-28 01:00:56

标签: ios uiview animatewithduration

所以我有一堆箭头,我在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

2 个答案:

答案 0 :(得分:0)

另外,在块内部使用self.view.layoutIfNeeded。

答案 1 :(得分:0)

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

Here是如何做到这一点的绝佳指南。