UIView动画链接无法正常工作

时间:2019-07-28 13:02:35

标签: ios swift

我正在尝试制作一个简单的 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

链接有什么问题?预先感谢。

2 个答案:

答案 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()
    }
}

带有动画的输出:->正在加载...