UIView 动画在 segue 之后不显示
UIView Animation not shown after segue
我有 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()
}
})
}
将您的 Animation
块移动到 viewDidAppear()
我有 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()
}
})
}
将您的 Animation
块移动到 viewDidAppear()