Swift 4:使用 for 循环以编程方式将 UIView 添加到数组中

Swift 4 : Adding UIView into the array programmatically with for loop

我正在使用 scrollView 分页,我想使用 for 循环以编程方式将 UIView 添加到 scrollView 中。但我想我遗漏了什么。

这是我的代码:

func createSlide() ->[Slide]{
    for i in 0..<datas.count{
        slideAll?.append(Bundle.main.loadNibNamed("ViewTest", owner: self, options: nil)?.first as! Slide)

        slideAll![i].testLabel.text = datas[i]
    }

    return slideAll!

}

我可以这样添加 UIView 吗?如果可以,我该如何修复这段代码?

编辑:

我意识到我初始化 slideAll 时顶部没有任何值:

var slideAll:[Slide]?

如何正确初始化它?我应该在函数上初始化它吗?

for i in 0...datas.count 将循环到最后一个插槽数组+1,然后它会大喊错误,因为在该索引处没有值,您应该使用 for i in 0..<datas.countfor slide in datas 代替

确保 datas 已初始化。

使用 for-loop 如下:

for text in datas { // DO SOMETHING }

而且我希望,您在代码中的某个地方对 uiscrollview 的视图进行了子视图,并且在上面的问题中没有提到它?

代替这一行:

var slideAll:[Slide]?

这样说:

var slideAll = [Slide]()

然后从您对其余代码中 slideAll 的引用中删除可选解包符号。