Последовательность 3 изображения сразу за другим для отображения на изображении - PullRequest
0 голосов
/ 23 марта 2020

Мой быстрый код ниже в забавном c ниже отображает 2 изображения в режиме просмотра изображений. Мой код ниже прямо сейчас успешно это делает, но он может отображать только 2 изображения. Я хочу отобразить a, b, cd на секунду, а затем повторить бесконечный цикл.

let image1 = UIImage(named: "a.png")
let image2 = UIImage(named: "b.png")
let image3 = UIImage(named: "cd.png")
  var fan = UIImageView()




@objc func alterImage() {
    fan.image = fan.image == image2 ? image1 : image2
    perform(#selector(alterImage), with: self, afterDelay: 1)
}

Ответы [ 2 ]

1 голос
/ 23 марта 2020

UIImageView имеет свойство, называемое animationImages, точно для этой цели, одно для контроля его продолжительности animationduration, а другое - animationRepeatCount для контроля его повторения. Вам просто нужно установить его на ноль для бесконечного цикла. После того, как вы настроите эти свойства, вам нужно просто вызвать метод UIImageView startAnimating()


import UIKit
class ViewController: UIViewController {
    @IBOutlet weak var imageView: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
        let image1 = UIImage(named: "a")!
        let image2 = UIImage(named: "b")!
        let image3 = UIImage(named: "c")!
        imageView.animationImages = [image1, image2, image3]
        imageView.animationDuration = 1
        imageView.animationRepeatCount = 0
        imageView.startAnimating()
    }
}
0 голосов
/ 23 марта 2020

попробуйте

@objc func alterImage() {
    fan.image = fan.image == image1 ? image2 : fan.image == image2 ? image3 : image1
    perform(#selector(alterImage), with: self, afterDelay: 1)
}
...