-3
我試圖給標籤添加動畫,讓它們一次又一次地隨機座標,但是當我運行時,動畫不會處理,即使我使用檢查變量來確保動畫在確定其他座標之前完成。順便說一句,如果你有任何想法來創建標籤之間的互動,當它們互相碰撞時,請寫下來。如何用不同的座標重複動畫
var check = 2
var coordinateXLabel1 = 1
var coordinateXLabel2 = 1
var coordinateYLabel1 = 1
var coordinateYLabel2 = 1
while 1 == 1 { //create an infinit loop
if check == 2{
check = 0
coordinateXLabel1 = Int(arc4random_uniform(324) + 25)
coordinateXLabel2 = Int(arc4random_uniform(324) + 25)
coordinateYLabel1 = Int(arc4random_uniform(560) + 111)
coordinateYLabel2 = Int(arc4random_uniform(560) + 111)
UIView.animate(withDuration: 1, animations: {
self.label1.center = CGPoint(x: coordinateXLabel1, y: coordinateYLabel1)
}, completion: {(finished:Bool) in
check += 1
})
UIView.animate(withDuration: 1, animations: {
self.label2.center = CGPoint(x: coordinateXLabel2, y: coordinateYLabel2)
}, completion: {(finished:Bool) in
check += 1
})
}
}
你在哪裏把這個代碼 –
保持頭腦的是,在時間,將採取跑1秒的動畫,你的循環將排隊數以百計的動畫。而且他們都沒有設置等待任何以前的動畫完成。 – rmaddy
因爲while循環阻塞了整個應用程序的UI線程,所以這不起作用。而只需執行一次代碼,並在兩個動畫完成後重新開始動畫。 –