我正在尝试制作一个简单的 Loading 标签文本动画,以在其后显示3个点,每个点都有一秒钟的延迟。
这是我尝试过的:
func animateLoading() {
UIView.animate(withDuration: 1, animations: {self.yukleniyorLabel.text = "Yükleniyor."}, completion: { _ in
UIView.animate(withDuration: 1, animations: {self.yukleniyorLabel.text = "Yükleniyor.."}, completion: { _ in
UIView.animate(withDuration: 1, animations: {self.yukleniyorLabel.text = "Yükleniyor..."})
})
})
}
但是我得到的是所有3个点在1秒内一起出现。顺序不对。看到这里:https://streamable.com/yiz6s
链接有什么问题?预先感谢。
答案 0 :(得分:2)
UIView animate
仅适用于可动画显示的视图属性,例如框架和背景色。 self.yukleniyorLabel.text
不是可设置动画的属性。所以你没有动画。
只需使用计时器或延迟的演奏来按时间间隔更改文本。
答案 1 :(得分:0)
您可以使用定时计时器在带有动画的标签上显示带有三个点的文本:->
var i = 0
var timer : Timer?
loaderLabel.text = "Loading"
timer = Timer.scheduledTimer(timeInterval: 0.2, target: self, selector:#selector(ViewController.setText), userInfo: nil, repeats: true)
@objc func setText() {
loaderLabel.text = loaderLabel.text! + "."
i += 1
if i >= 3 {
timer?.invalidate()
}
}
带有动画的输出:->正在加载...