0
我有一個填充屏幕的框和一個按鈕。當我按下按鈕時,我希望盒子慢慢向下移動,直到它不再可見。如果在此動畫期間按下按鈕,我希望按鈕返回到其原始位置,並恢復動畫。我有以下代碼:當在Swift中按下某個按鈕時獲取一個對象以重置爲固定(x,y)座標
@IBOutlet weak var backgroundthing: UIView!
@IBAction func button(_ sender: UIButton) {
UIView.animate(withDuration: 0.0, animations: {self.backgroundthing.frame.origin.y = 0}, completion: nil)
UIView.animate(withDuration: 4.0, animations: {self.backgroundthing.frame.origin.y = 667}, completion: nil)
}
如果我按下按鈕一次,它的工作「很好」,並且該框需要4秒下車屏幕。但是,如果在動畫結束之前按下按鈕,則框會捕捉到比原始位置更高的位置。例如,如果我在按下按鈕的同時該框只有一半的屏幕,則它會卡到頂部,並且屏幕上方的一半框將繼續滑下。我所尋找的代碼會將盒子摺疊到原來的位置,所以無論按下按鈕的速度有多快或多少次,它都不會比原來的位置更高。