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

时间:2017-11-10 10:57:55

标签: ios swift uiview swift4 programmatically

我正在使用scrollView分页,我希望以编程方式将UIView添加到scrollView for for循环中。但我想我错过了一些东西。

这是我的代码:

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]?

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

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

确保初始化datas

使用for循环如下:

for text in datas { // DO SOMETHING }

我希望,您在代码中的某处对uiscrollview的观点进行了分析,并且在上述问题中没有提到它?

答案 2 :(得分:1)

而不是这一行:

var slideAll:[Slide]?

这样说:

var slideAll = [Slide]()

然后从代码的其余部分中对slideAll的引用中删除可选的展开符号。