页面打开时给 UILabel 添加动画
Add animation to UILabel when the page is opened
我阅读并观看了很多关于向标签添加动画的教程,但其中 none 对我有用。
我希望当我打开一个视图控制器时,一秒钟后,一个 UILabel 开始从页面底部淡入并到达页面中心。
比如这里是我说的标签outlet
@IBOutlet weak var welcomeLabel: UILablel!
我制作了这个功能并将其添加到 viewdidload
但它没有显示任何动画,而且当我点击它时会崩溃并出现此错误:
Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
函数如下:
func addAnimation() {
UILabel.animate(withDuration: 3, delay: 3, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
self.welcomeLabel.transform = CGAffineTransform(translationX: 0, y: -200)
})
}
我也知道这不是我看的动画,我只是为了测试添加的。你能帮我写出我想要的动画吗:
开始淡入并从页面底部移动到中心。
非常感谢
首先,您的标签现在未连接到视图控制器。因此,您收到了该错误。
之后,将标签放置在屏幕中心并创建它的 centerY 出口。现在您可以通过更改此 centerY 常量来为其设置动画,并通过更改 alpha 值来淡化它。
例如:
UIView.animate(withDuration: 0.3) {
self.centerY.constant = //your value
self.label. alpha = 1
self.view.layoutIfNeeded()
}
创建UILabel
的@IBOutlet
并将标签放在屏幕中央并添加所需的constraint
。
创建 @IBOutlet of label center Y alignment of Constraint
如下所示。
@IBOutlet weak var centerY: NSLayoutConstraint!
然后改变它的常量值。
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
centerY.constant = self.view.bounds.height/2
self.view.layoutIfNeeded()
addAnimation()
}
func addAnimation(){
UIView.animate(withDuration: 1, delay: 0, options: [.curveEaseOut], animations: {
self.centerY.constant = 0
self.welcomeLabel.alpha = 1.0
self.view.layoutIfNeeded()
}, completion: nil)
}
我阅读并观看了很多关于向标签添加动画的教程,但其中 none 对我有用。 我希望当我打开一个视图控制器时,一秒钟后,一个 UILabel 开始从页面底部淡入并到达页面中心。 比如这里是我说的标签outlet
@IBOutlet weak var welcomeLabel: UILablel!
我制作了这个功能并将其添加到 viewdidload
但它没有显示任何动画,而且当我点击它时会崩溃并出现此错误:
Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
函数如下:
func addAnimation() {
UILabel.animate(withDuration: 3, delay: 3, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
self.welcomeLabel.transform = CGAffineTransform(translationX: 0, y: -200)
})
}
我也知道这不是我看的动画,我只是为了测试添加的。你能帮我写出我想要的动画吗:
开始淡入并从页面底部移动到中心。
非常感谢
首先,您的标签现在未连接到视图控制器。因此,您收到了该错误。
之后,将标签放置在屏幕中心并创建它的 centerY 出口。现在您可以通过更改此 centerY 常量来为其设置动画,并通过更改 alpha 值来淡化它。
例如:
UIView.animate(withDuration: 0.3) {
self.centerY.constant = //your value
self.label. alpha = 1
self.view.layoutIfNeeded()
}
创建UILabel
的@IBOutlet
并将标签放在屏幕中央并添加所需的constraint
。
创建 @IBOutlet of label center Y alignment of Constraint
如下所示。
@IBOutlet weak var centerY: NSLayoutConstraint!
然后改变它的常量值。
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
centerY.constant = self.view.bounds.height/2
self.view.layoutIfNeeded()
addAnimation()
}
func addAnimation(){
UIView.animate(withDuration: 1, delay: 0, options: [.curveEaseOut], animations: {
self.centerY.constant = 0
self.welcomeLabel.alpha = 1.0
self.view.layoutIfNeeded()
}, completion: nil)
}