尽管有一个延迟我的功能执行得太快

时间:2017-03-25 18:34:27

标签: ios swift

这是我的代码:

 let playableCards = self.allPlayableCardsViews[0].allSubviews.flatMap { $0 as? UIButton }
var counter: Double = 0
   for card in playableCards{

        UIView.animate(withDuration: 0.3, delay: TimeInterval(counter), options: .init(rawValue: 0), animations: {
            card.alpha = 1.0
            print("hello")

        }, completion: nil)
        counter += (3.7/Double(16))
    }

通常在打印行中有一个功能。这个函数被称为循环量当然是好的。但是我想添加相同的延迟,让我的卡淡入。现在我的函数被调用没有延迟,导致16个函数在同一时间执行,这是我觉得很奇怪,因为我明显添加了延迟。我不想使用完成,因为函数需要在卡片淡入的同时执行。如何卡片一个接一个地消失并且函数(在这个例子中打印)被调用延迟?

我现在在调试会话中看到16次"你好"而卡片仍在消失。

谢谢。

1 个答案:

答案 0 :(得分:5)

动画会延迟,但可以随时调用该块来确定动画的属性 - 这些不需要同时进行。

使用计时器在动画关闭的同时调用您的功能。如果您希望它由实际发生的动画触发,您可以在card.alpha属性上使用键值观察(KVO)。