Swift iOS背景颜色视图动画作为计时器

时间:2019-01-01 05:05:56

标签: ios swift uiviewanimation

我正在尝试使viewController的背景开始为蓝色。一分钟过去后,我希望蓝色在60秒内缓慢落到屏幕上。它已完成,但屏幕不是白色。

这是我尝试过的。 我创建了一个蓝色视图,并将屏幕高度除以120。每隔1/2秒使用一个定时计时器,我将屏幕降级1/120。

它可以工作,但是看起来不是很好。如何以一种看起来非常平滑的方式对此进行动画处理。

1 个答案:

答案 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::您需要在该视图下的另一个视图为白色,以实际显示其下的白色视图。