Добавление анимации для просмотра - PullRequest
0 голосов
/ 01 мая 2018

Я хотел бы добавить анимацию к моему tableView, когда он пуст.

У меня есть два отдельных изображения:

1) Строка,
2) Переплетение

enter image description here

Я думал, что было бы здорово оживить это так:

В течение 10-15 секунд появляется только линия, затем с правой стороны появляется перевёрнутая трава, а через несколько секунд она переворачивается на левую сторону.

Я сделал gif и скачал фреймворк, который позволяет отображать картинки в UIImageView.

Работало, но было действительно некачественно, не так гладко, как все остальное.


Так что я думаю, возможно ли, что я оживляю это в самом быстром?

Или что вы предлагаете? Любое предложение будет полезно.

Спасибо

1 Ответ

0 голосов
/ 01 мая 2018

Для этого вида анимации вы также можете использовать этот подход:

  1. Поворот UIImageView
  2. Перевести x на позицию UIImageView

Вот расширение для поворота UIImageView (Вы можете изменить класс с UIImageView на UIView):

extension UIImageView {
    func rotateImage360Degrees(duration: CFTimeInterval = 2) {
        let rotateAnimation                   = CABasicAnimation(keyPath: "transform.rotation")
        rotateAnimation.fromValue             = 0.0
        rotateAnimation.toValue               = CGFloat(Double.pi * 2)
        rotateAnimation.isRemovedOnCompletion = false
        rotateAnimation.duration              = duration
        rotateAnimation.repeatCount           = Float.infinity
        self.layer.add(rotateAnimation, forKey: nil)
    }

    func rotateImage360DegreesInReverse(duration: CFTimeInterval = 2) {
        let rotateAnimation                   = CABasicAnimation(keyPath: "transform.rotation")
        rotateAnimation.fromValue             = CGFloat(Double.pi * 2)
        rotateAnimation.toValue               = 0.0
        rotateAnimation.isRemovedOnCompletion = false
        rotateAnimation.duration              = duration
        rotateAnimation.repeatCount           = Float.infinity
        self.layer.add(rotateAnimation, forKey: nil)
    }
}

И анимация перевода в UIView.animate блоке:

func animateImageView(){
    UIView.animate(withDuration: 3.0, delay: 0.0, options: ([.curveLinear]), animations: {() -> Void in
        self.yourImageView.transform = CGAffineTransform.init(translationX: self.view.bounds.size.width, y: self.yourImageView.bounds.origin.y)
    }, completion:  { _ in
        self.yourImageView.transform = .identity
        self.animateImageView() // For continuous animation
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...