我想制作一个标签,其文本从“加载” - >“加载”更改。 - >“加载..” - >“加载...”动态和只要该标签存在。如何使动态更改和循环文本的UILabel?
所以我刚创建了一个标签,并添加了一个我称之为animateDots
的函数,它只是不断调用自己。我已经完成了使用UIView.animateWithDuration()
和每个完成块调用另一个animateWithDuration()
,直到它只是调用animateDots()
等。但是这并不奏效,因为UILabel中的文本不具备动画效果,所以它只是非常快速地为所有四个标签制作动画。我希望它变慢。
我试过UIView.preformWithoutAnimation
,我也试过UIView.beginAnimations
但我不记得animateDots()
而不会导致应用程序崩溃。我不知道还有什么可以尝试的
编辑:感谢@ 7vikram7的建议,我解决了这个问题。
我在初始化标签后立即创建了定时器,定时器重复。每当定时器完成一个循环时,它就会运行一个选择器,在这种情况下,该选择器将更改文本。在代码:
loading = UILabel(frame: CGRectMake(0,0,80,50))
loading.text = "Loading"
let timer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector:
#selector(LoadingCell.animateDots), userInfo: nil, repeats: true)
timer.fire()
然后添加此功能:
func animateDots() {
switch (loading.text!) {
case "Loading...":
loading.text = "Loading"
case "Loading":
loading.text = "Loading."
case "Loading.":
loading.text = "Loading.."
case "Loading..":
loading.text = "Loading..."
default:
loading.text = "Loading"
}
}
可以使用的NSTimer不是时候。以2或3秒的间隔重复计划一个计时器。 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSTimer_Class/ – 7vikram7
啊,这真是个好主意!我会去做。谢谢。 – QuantumHoneybees
你可以在这里添加一些代码吗? –