2015-08-23 37 views
0

我有一段代码,它动画的UIImage的位置,但过渡不是动画 - 而是立即改变立场。我不相信这是一个代码问题,因为相同的代码在另一个项目上工作,但我无法弄清楚还有什么问题。UIView动画没有动画

class CenterViewController : UIViewController { 
    @IBOutlet var logoView: UIImageView! 
    @IBOutlet var logoViewVerticalConstraint: NSLayoutConstraint! 

    override func viewDidAppear(animated: Bool) { 
     animateLogo() 
    } 

    func animateLogo() { 
     self.logoViewVerticalConstraint.constant = 35 - (self.view.frame.size.height/2); 
     logoView.setNeedsUpdateConstraints() 
     UIView.animateWithDuration(2.5, animations: { 
      self.logoView.alpha=1 
      self.logoView.layoutIfNeeded() 
     }) 
    } 
} 

alpha动画但y位置没有。我的约束是这样

enter image description here

具体的一个代码操作是: enter image description here

编辑:我使用的Xcode-β7目标8.4

+0

你应该在cha之前调用'layoutIfNeeded'一次在约束被改变之后约束约束并且一次在动画块中。您的代码在大多数情况下都能正常工作,但有些情况下您需要使用其他方法,而您的代码可能就是其中之一。 – marosoaie

+0

这没有任何影响,我不知道为什么它 – clicky

回答

0

尝试

func animateLogo() { 
    logoView.layoutIfNeeded() 
    UIView.animateWithDuration(2.5, animations: { 
     self.logoViewVerticalConstraint.constant = 35 - (self.view.frame.size.height/2); 
     self.logoView.alpha=1 
     self.logoView.layoutIfNeeded() 
    }) 
} 
+0

仍然是相同的问题 – clicky

+0

@clicky你可以隔离这个视图控制器的代码,并在github上上传吗?这样可以运行并查看它为什么不起作用? –

+0

不要忘记链接故事板上的限制条件。 –