UIImageView如何在不同图片之间进行动画过渡

4
我有一个代码,可以让同一张图片在视图控制器中无限重复地淡入。
 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)


    }

现在我需要它在每次淡入时在四张图之间切换,每次使用不同的图片。
1个回答

8

你该怎么做?

你需要以下物品:

  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)

以下是实现此功能的神奇方法:
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)
}

不要忘记拉取你的imageView引用插座。 :)
   @IBOutlet weak var imageView: UIImageView!

它起作用了,非常感谢...这一切都与计时器有关。 - Osama Fawzi
谢谢你不仅接受了答案,而且当它起作用时还微笑着。 :) - elk_cloner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接