我正在使用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
初始化程序中调用的同一个闭包可以正常工作。
答案 0 :(得分:1)
错误消息很清楚。如果不清楚,请看一下文档:
https://developer.apple.com/documentation/uikit/uiviewpropertyanimator/1648370-addanimations
delayFactor
必须是CGFloat,而不是Double。