【发布时间】:2019-06-04 14:06:46
【问题描述】:
我有一个淡入淡出的淡入淡出序列。但是,代码的执行不会等到单个淡入淡出动画(fadeIn、fadeOut)完成。 fadeIn 完成后如何触发fadeOut?
到目前为止,这是我的基本代码:
func fadeIn(){
if self.alpha == 0.0 {
UIViewPropertyAnimator.runningPropertyAnimator(
withDuration: 3.0,
delay: 2.0,
options:[.curveLinear],
animations: {self.alpha = 1.0},
completion: {if $0 == .end{print("FadeIn finished now")}})
}
}
func fadeOut(){
if self.alpha == 1.0 {
UIViewPropertyAnimator.runningPropertyAnimator(
withDuration: 3.0,
delay: 2.0,
options:[.curveLinear],
animations: {self.alpha = 0},
completion: {if $0 == .end{print("FadeOut finished now")}})
}
}
//connect single Fades
func fadeSequence(){
self.fadeIn()
self.fadeOut()
}
问题是如何在执行进一步的代码之前将这些动画一个接一个地链接起来。
在我的应用程序中,我想实现一个重复循环,其中每个动画都必须在显示下一个动画之前完成:
for item in 0..<4{
print("runthrough:\(item)")
myView.fadeSequence()
}
我的基本问题是对补全部分的理解。
【问题讨论】: