繁体   English   中英

通过 Swift 中的各种图像制作动画 - 使用自定义加载视图

[英]Animate thru various images in Swift - Using customized Load View

我有一个 customLoader,我想在用户登录时随时调用它。我想通过 gifArray 中的所有七张照片制作动画。

import UIKit

class CustomLoader: UIView {

static let instance = CustomLoader()
let gifArray: [UIImage] = [UIImage(named: "beer1")!,UIImage(named: "beer2")!,UIImage(named: "beer3")!,UIImage(named: "beer4")!,UIImage(named: "beer5")!,UIImage(named: "beer6")!,UIImage(named: "beer7")!]

lazy var transparentView:UIView = {
    let transparentView = UIView(frame: UIScreen.main.bounds)
    transparentView.backgroundColor = UIColor.black.withAlphaComponent(0.7)
    transparentView.isUserInteractionEnabled = false
    return transparentView
} ()

lazy var gifImage: UIImageView = {
    var gifImage = UIImageView(frame: CGRect(x: 0, y: 0, width: 200.00, height: 100))
    gifImage.contentMode = .scaleAspectFit
    gifImage.center = transparentView.center
    gifImage.isUserInteractionEnabled = false

    return gifImage
} ()



func animate() {
    for image in gifArray {
    gifImage.image = image
    gifImage.animationRepeatCount = 1
    gifImage.startAnimating()
    }
}

func showLoader() {
    self.addSubview(transparentView)
    self.transparentView.addSubview(gifImage)
    self.transparentView.bringSubviewToFront(self.gifImage)
   animate()

}


func hideLoader() {
    self.transparentView.removeFromSuperview()
}
}

我在用户登录时调用它

    In ViewDidLoad:
    CustomLoader.instance.showLoader()
    view.addSubview(CustomLoader.instance.transparentView)
    view.bringSubviewToFront(CustomLoader.instance.transparentView)

问题:不幸的是,它只显示了最后一张图片。 我该如何解决?

这里的for循环设置最后一张图片

for image in gifArray {

相反你需要

gifImage.isUserInteractionEnabled = false
gifImage.animationImages = gifArray

然后

func animate() { 
  gifImage.startAnimating()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM