2017-11-10 5 views
-2

私はscrollViewページングを使用しています。をforループでプログラムで追加します。しかし、私は何かが足りないと思う。ここでSwift 4:forループを使用して配列にプログラムでUIViewを追加する

は私のコードです:

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を追加することができている可能性が、このですか?できる場合は、このコードをどのように修正できますか?

編集:

var slideAll:[Slide]? 

私はこれを正しく初期化するにはどうすればよい:

私はそのような上に値なしでslideAllを初期化することに気づきましたか?私はこの関数を初期化する必要がありますか?そのインデックスでは値がありません、あなたはdatasが初期化されていることを確認してください代わりに

+0

にはどこでも開始された 'slideAll'がありますか? – holex

+0

ええ、私はuiscrollviewをサブビューするためにこの関数を追加しています。 – winnervswinner

+0

お願いします。コードの_pictures_を絶対に表示しないでください。 _code_を表示します。問題を再現するために必要なコードを最低限提供してください。この場合、あなたは「slideAll」や宣言されたことがあることを私たちに語っていませんでした。 – matt

答えて

1

var slideAll:[Slide]? 

はこれを言う:

var slideAll = [Slide]() 

そして、コードの残りの部分でslideAllにあなたの参照から省略アンラップ表記を削除します。

4

for i in 0...datas.countは、最後のスロットアレー+ 1のループ、それはエラーを叫ぶだろうします。以下のようにforループ

使用:

for text in datas { // DO SOMETHING }

そして、私は願って、あなたはサブビュー-INGのどこかのコードではUIScrollViewの意見をしているし、それが上記の質問に記載されていませんか?代わりに、この行の

+0

あなたが言ったことを試しましたが、それでも同じエラーが出ます。 – winnervswinner

1

for i in 0..<datas.countfor slide in datasを使用する必要がありますので、

+0

はい、サブビューに別の機能を追加しています。ループなしで動作し、ビューを1つずつ追加します。私は複数のビューを追加する必要があります。だから私はforループで苦労している。 – winnervswinner

+0

もっとコードを表示できますか?私が理解できるように。 – Srinivas

関連する問題