在segue之后没有显示UIView动画

时间:2015-06-08 22:01:30

标签: swift uiview uicollectionview uilabel uiviewanimation

我有2个视图控制器。第一个是Collection View Controller,第二个是普通View Controller。单击“集合视图控制器”中的单元格时,将显示第二个“视图控制器”。当视图开始在第二个视图控制器中加载时,我想显示从屏幕顶部到中心的UILabel滑动。

问题:动画没有发生。 UIlabel直接出现在中心,然后在3秒后以编码方式消失。我做错了什么?

override func viewDidLoad() {
    super.viewDidLoad()

    // Add a label to the view
    var dynamicLabel: UILabel = UILabel()
    dynamicLabel.frame = CGRectMake(0, 0, self.view.frame.width, 60)
    dynamicLabel.backgroundColor = UIColor.orangeColor()
    dynamicLabel.textColor = UIColor.blackColor()
    dynamicLabel.textAlignment = NSTextAlignment.Center
    dynamicLabel.text = "test label"
    self.view.addSubview(dynamicLabel)

    // animation
    UIView.animateWithDuration(0.7, delay: 0.0, usingSpringWithDamping: 0.7, initialSpringVelocity:3.0, options: UIViewAnimationOptions.CurveEaseInOut, animations: ({dynamicLabel.center.y = self.view.frame.height/2}), completion: { animationFinished in
        // when complete, remove the UILabel from the parent view
        self.delay(3.0) {
            dynamicLabel.removeFromSuperview()
        }
    }) 
}

1 个答案:

答案 0 :(得分:3)

Animation块移至viewDidAppear()