UIImageView带有动画的不同图像之间的过渡

Osa*_*wzi 2 xcode uiview uiimageview ios swift

我有这段代码,它永远在同一张图片中重复淡入视图控制器

 override func viewDidAppear(_ animated: Bool) {
        let toImage = UIImage(named:"intro.png")
        UIView.transition(with: self.imageView,
                          duration:2,
                          options: [.repeat , .transitionCrossDissolve],
                          animations: { self.imageView.image = toImage},
                          completion: nil)


    }
Run Code Online (Sandbox Code Playgroud)

现在,我需要每次在四个图像之间使用不同的img淡入淡出,直到永远消失。

elk*_*ner 5

你怎么能这样做?

你会需要:

  1. 计时器
  2. 柜台
  3. 用于保存图片名称的数组

    var images:[String] = []
    var timer = Timer()
    var photoCount:Int = 0

viewDidLoad中,我这样做是为了进行初始化。

images = ["1","2","3"]
imageView.image = UIImage.init(named: "1")
timer = Timer.scheduledTimer(timeInterval: 2.0, target: self, selector: #selector(onTransition), userInfo: nil, repeats: true)
Run Code Online (Sandbox Code Playgroud)

而执行此操作的魔术方法如下:

func onTransition() {
    if (photoCount < images.count - 1){
        photoCount = photoCount  + 1;
    }else{
        photoCount = 0;
    }

    UIView.transition(with: self.imageView, duration: 2.0, options: .transitionCrossDissolve, animations: { 
        self.imageView.image = UIImage.init(named: self.images[self.photoCount])
    }, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

不要忘记拉您的imageView参考出口。:)

   @IBOutlet weak var imageView: UIImageView!
Run Code Online (Sandbox Code Playgroud)