Невозможно вызвать addAnimations со списком аргументов типа '(() -> (), delayFactor: Double)' - PullRequest
0 голосов
/ 30 мая 2019

Я использую UIViewPropertyAnimator, чтобы контролировать ход нескольких анимаций.У меня есть 2d массив подклассов 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 Ответ

1 голос
/ 30 мая 2019

Сообщение об ошибке довольно ясно.Просто посмотрите на документы, если они недостаточно ясны:

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

delayFactor должен быть CGFloat, а не Double.

...