我正在尝试对一个简单的加载标签文本进行动画处理,以在其后显示 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
我在链接上做错了什么?提前谢谢。
UIView animate
仅适用于可动画视图属性,如帧和背景颜色。 self.yukleniyorLabel.text
不是可动画的属性。所以你没有动画。
只需使用计时器或延迟性能即可按时间间隔更改文本。
您可以使用计划的计时器在带有动画的标签上显示带有三个点的文本:->
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()
}
}
带动画的输出: -> 正在加载...