我想製作一個標籤,其文本從「加載」 - >「加載」更改。 - >「加載..」 - >「加載...」動態和只要該標籤存在。如何使動態更改和循環文本的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
你可以在這裏添加一些代碼嗎? –