代码之家  ›  专栏  ›  技术社区  ›  adjash

基于array.count-swift生成ImageView

  •  0
  • adjash  · 技术社区  · 6 年前

    我正在尝试生成图像视图的一部分,该部分将位于应用程序的顶部,并在用户完成测试时进行更新。

    我的数组变量是qs,我必须生成一个imageview的代码如下:

    var imageview:uiimageview!
    变量i=0
    var total=int(qs.capacity)//只测试capacity的作用。
    
    对于I in 0..<(qs.count-1){
    ImageView-uiImageView(帧:cDirect(x:0,y:75,宽度:50,高度:50))
    imageview.image=uiimage(命名为:“inficon”)
    imageView.contentMode=.scaleAspectFit
    
    self.view.addSubview(图像视图)
    }
    

    我已经有了一个变量,它跟踪用户通过测验的进度,如果有任何帮助的话,只使用一个整数,它与测验功能一起声明。 下面是一个我想要完成的梦幻般的画面:

    感谢您的帮助, 谢谢

    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 回复  |  直到 6 年前
        1
  •  0
  •   Kamran    6 年前

    假设你有一个容器 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 对齐。