首页 > 解决方案 > 使用 struct 显示图像一段时间

问题描述

我希望下面的快速代码获取结构数据并在 for 循环之类的东西中使用。循环应该采用 arrayOne 并在图像应该在 imageview pic 上显示多长时间的时间内使用它。Uiimage 数组应该对应于 int.So 有 2 个图像和两个 int 只是使它们显示在 imageview pic 上以匹配它们各自数组中的 int。

    import UIKit

class ViewController: UIViewController {
    var pic = UIImageView()
    
    
    var somePics:[UIImage] = [ UIImage(named: "a.png")!,UIImage(named: "b.png")!]
    var emptyb = [UIImage]()
    var someInts:[Int] = [10, 20]

    

    override func viewDidLoad() {
        super.viewDidLoad()
       Added(arrayOne: someInts, arrayTwo: emptyb)
        view.addSubview(pic)
        pic.frame = CGRect(x: 100, y: 100, width: 200, height: 200)
        pic.backgroundColor = .yellow
        
        //for added.

    }


}


struct Added {
    var arrayOne: [Int]
    var arrayTwo: [UIImage]
}

标签: swiftfor-loopstructintegeruiimage

解决方案


完全工作的例子。检查你是否一切都好!

class ViewController: UIViewController {
    var pic = UIImageView()
    var somePics: [UIImage] = [UIImage(named: "image1")!, UIImage(named: "image2")!]
    var emptyb = [UIImage]()
    var someInts:[Int] = [5, 6]
    var currentIndex = 0

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.white
        view.addSubview(pic)
        pic.frame = CGRect(x: 100, y: 100, width: 200, height: 200)
        pic.backgroundColor = .yellow
        runGallery()
    }
    
    func runGallery() {
        guard !somePics.isEmpty else {
            return
        }
        currentIndex = 0
        newTimerForIndex(index: 0)
    }
    
    func newTimerForIndex(index: Int) {
        let image = somePics[index]
        pic.image = image
        Timer.scheduledTimer(withTimeInterval: Double(someInts[index]), repeats: false) { timer in
            if self.currentIndex + 1 < self.somePics.count {
                //RUN gallery for next image
                self.currentIndex += 1
                self.newTimerForIndex(index: self.currentIndex)
            } else {
                //STOP on last element
                self.pic.image = nil
            }
        }
    }
}


struct Added {
    var arrayOne: [Int]
    var arrayTwo: [UIImage]
}

推荐阅读