Swift - анимация ImageView - PullRequest
       29

Swift - анимация ImageView

0 голосов
/ 03 марта 2019

просто быстрая проблема, связанная с анимацией движущегося фонового изображения для моей текущей настройки приложения.По сути, я хочу, чтобы мой текущий фоновый рисунок прокручивался вверх до бесконечной начальной позиции;но я изо всех сил пытаюсь соединить все это вместе.Кто-нибудь может мне помочь?

 class Flash: UIViewController {
@IBOutlet weak var arrowImage: UIImageView!

    var arrow1: UIImage!
    var arrow2: UIImage!
    var arrow3: UIImage!
    var images: [UIImage]!
    var animatedImage: UIImage!
    override func viewDidLoad() {
        super.viewDidLoad()
        toggleFlash()
        arrow1 = UIImage(named: "Arrow1.png")
        arrow2 = UIImage(named: "Arrow2.png")
        arrow3 = UIImage(named: "Arrow3.png")
        images = [arrow1, arrow2, arrow3]
       animatedImage = UIImage.animatedImage(with: images, duration: 1.0)
        arrowImage.image = animatedImage

    }

    func blinkScreen(){

    UIView.animate(withDuration: 1, delay: 0, options: [.repeat, .curveLinear], animations: {

    }) { _ in
    }
}

1 Ответ

0 голосов
/ 03 марта 2019

Хорошо, я думаю, я понимаю, для чего вы собираетесь.

Прежде всего, аргумент длительности - это продолжительность каждой итерации анимации.Во-вторых, UIView.animate (...) не повторяет анимацию, пока вы не добавите параметр .repeat к аргументу параметров.

Таким образом, чтобы достичь чего-то более близкого к тому, что вы хотите, обновите свой код до:

func blinkScreen()
    UIView.animate(withDuration: 1, delay: 0, options: [.repeat, .curveLinear], animations: {
        self.imageV.transform = CGAffineTransform(translationX: 0, y: -10)
    }) { _ in
        self.imageV.transform = .identity
    }
}

А если вы хотите анимировать движение как вверх, так и вниз, используйте параметр .autoreverse (и, возможно, .curveEaseInOut):

func blinkScreen()
    UIView.animate(withDuration: 1, delay: 0, options: [.repeat, .autoreverse, .curveEaseInOut], animations: {
        self.imageV.transform = CGAffineTransform(translationX: 0, y: -10)
    }) { _ in
        self.imageV.transform = .identity
    }
}
...