无法使用类型为'(()->(),delayFactor:Double)'的参数列表调用'addAnimations'

时间:2019-05-29 21:41:29

标签: ios animation uiviewpropertyanimator

我正在使用UIViewPropertyAnimator来控制多个动画的进度。我有一个二维数组的UIView子类。我想一次在每个索引处显示所有元素。由于某些原因,编译器不允许我使用addAnimations(_:delayFactor:)方法来延迟添加新动画。有人可以告诉我我在做什么错吗?

// I'm creating a new viewAnimator without any animations. No problems here
        self.viewAnimator = UIViewPropertyAnimator(duration: self.frameDelay * Double(self.spillBubbles.count),
                                                   curve: .easeIn,
                                                   animations: {})


        for (index, views) in self.spillBubbles.enumerated() {

            views.forEach({ self.simulationView.addSubview($0) })

            // That's where the compiler error occurs 
            self.viewAnimator!.addAnimations({
                views.forEach({ self.simulationView.addSubview($0) })
            }, delayFactor: Double(index) / Double(self.spillBubbles.count))

        }

当我尝试调用.addAnimations时,收到以下消息: Cannot invoke 'addAnimations' with an argument list of type '(() -> (), delayFactor: Double)'

我在这里做错了什么? UIViewPropertyAnimator初始化程序中调用的同一个闭包可以正常工作。

1 个答案:

答案 0 :(得分:1)

错误消息很清楚。如果不清楚,请看一下文档:

https://developer.apple.com/documentation/uikit/uiviewpropertyanimator/1648370-addanimations

delayFactor必须是CGFloat,而不是Double。