基于array.count生成imageView-Swift

时间:2018-07-02 11:14:30

标签: arrays swift loops for-loop imageview

我正在尝试生成图像视图的一部分,该部分位于应用程序的顶部,并随着用户逐步完成测验而更新。

我的数组变量是Qs,我必须生成imageView的代码如下:

var imageView: UIImageView!
var i = 0
var total = Int(Qs.capacity) // Just testing what .capacity does.

for i in 0..<(Qs.count-1){
imageView - UIImageView(frame: CGRect(x: 0, y: 75, width: 50, height: 50))
imageView.image = UIImage(named:"InfoIcon")
imageView.contentMode = .scaleAspectFit

self.view.addSubView(imageView)
}

我已经有了一个变量,该变量可以跟踪用户通过测验的进度,如果有帮助的话,它只能是一个整数,它随测验功能一起声明。 这是我要完成的工作的奇幻图画:

enter image description here

感谢您的帮助, 谢谢

1 个答案:

答案 0 :(得分:0)

让我们假设您在顶部附加了一个容器view,然后可以使用此方法添加任意数量的imageView's

func addProgressImages(to view: UIView, count: Int) {
    let screenSize = UIScreen.main.bounds.size

    for i in 0..<count {
        let spacing: CGFloat = 2
        let tag = i + 888
        let width: CGFloat = screenSize.width/CGFloat(count)
        let height: CGFloat = width
        if let view = view.viewWithTag(tag) {
            view.removeFromSuperview()
        }
        let x = spacing + CGFloat(i) * width
        let imageView = UIImageView(frame: CGRect(x: x, y: 100, width: width - spacing, height: height))
        imageView.image = UIImage(named:"InfoIcon")
        imageView.tag = tag
        imageView.contentMode = .scaleAspectFit
        view.addSubview(imageView)
    }
} 

您可以使用y值进行vertical对齐。