Быстро переместите изображение справа налево, чем слева направо - PullRequest
0 голосов
/ 06 марта 2020

Я хочу сделать анимацию, которая перемещает фоновое изображение справа налево, чем слева направо. Я использую этот код, но не работает

        UIView.animate(withDuration: 5, delay: 0, options: .repeat ,animations: { () -> Void in
                imageView.transform = CGAffineTransform(translationX: -imageView.frame.width + self.view.bounds.width, y: 0)
                UIView.animate(withDuration: 5, delay: 1, options: .repeat ,animations: { () -> Void in
                    imageView.transform = CGAffineTransform(translationX: +imageView.frame.width - self.view.bounds.width, y: 0)

                })

            })

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Я решил с этим

UIView.animate(withDuration: 30.0, delay: 0, options: [.repeat, .autoreverse], animations: {

                imageView.transform = CGAffineTransform(translationX: -imageView.frame.width + self.view.bounds.width, y: 0)

            }, completion: nil)
0 голосов
/ 06 марта 2020

Используйте следующий код, если вы хотите использовать устаревший animate(withDuration:animations:) API. Однако вам нужно дождаться окончания первой анимации - это означает, что вы должны использовать блок completion. Однако ваше значение для translationX также не имеет смысла.

UIView.animate(withDuration: 1, animations: {
            self.imageView.transform = CGAffineTransform(translationX: -self.imageView.frame.width, y: 0)
        }) { _ in
            UIView.animate(withDuration: 1) {
                self.imageView.transform = CGAffineTransform.identity
            }
        }

Я настоятельно рекомендую взглянуть на "новый" способ создания анимации: UIViewPropertyAnimator (https://developer.apple.com/documentation/uikit/uiviewpropertyanimator)

...