我正在尝试使viewController的背景开始为蓝色。一分钟过去后,我希望蓝色在60秒内缓慢落到屏幕上。它已完成,但屏幕不是白色。
这是我尝试过的。 我创建了一个蓝色视图,并将屏幕高度除以120。每隔1/2秒使用一个定时计时器,我将屏幕降级1/120。
它可以工作,但是看起来不是很好。如何以一种看起来非常平滑的方式对此进行动画处理。
答案 0 :(得分:1)
为什么要为此使用计时器?只需使用动画块即可。
UIView.animate(withDuration: 60, delay: 0, options: [.allowUserInteraction], animations: {
// If you are not using autolayout, just animate the frame.
topAnchorConstraint.constant = -view.frame.height // Or any horizontal anchor
view.layoutIfNeeded()
}, completion: nil)
由于该动画耗时超过60秒,因此我假设您需要在动画过程中与用户互动,您可以在options
参数中对其进行设置。
P.S::您需要在该视图下的另一个视图为白色,以实际显示其下的白色视图。