【问题标题】:Generate imageView based off array.count - Swift基于 array.count 生成 imageView - Swift
【发布时间】:2018-12-10 14:33:28
【问题描述】:

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

我的数组变量是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)
}

我已经有一个变量来跟踪用户在测验中的进度,如果这有帮助的话,它会与测验功能一起声明。 这是我要完成的工作的奇妙视觉效果:

任何帮助表示赞赏, 谢谢

【问题讨论】:

    标签: arrays swift loops for-loop imageview


    【解决方案1】:

    假设您在顶部附加了一个容器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 对齐。

    【讨论】:

    • 嘿伙计,感谢您的回复,我在调用该函数时遇到了一些问题,在 viewDidLoad() 函数中我调用了 addProgressImages(to: UIView, count: Int) 我得到一个无法转换UIView.Type 类型的值到预期的参数类型 UIView
    • 啊。您必须在此处传递实际视图和编号,例如 addProgressImages(to: self.view, count: 5)
    • 感谢您解决这个问题,现在有一个问题是我在准备 segue 函数时遇到线程 1:信号 SIGABRT 错误,该代码中是否有任何内容导致此错误?跨度>
    • 嘿,我不确定代码有什么问题,但即使没有您的代码,由于此线程 1 错误,应用程序也不会再运行,您有什么建议吗?
    • 抱歉,如果不知道崩溃的代码行,我无法找出问题所在。您可能需要调试您的应用并找出导致崩溃的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多