2016-07-25 8 views
0

ここには困惑しているものがあります。または見えないものがあります。最後のセルがUITableViewで失われました

私は、テーブルビュー(UITableView)で働いていると、コードは次のとおりです。ここで

print("Number of row = \(tableView.numberOfRowsInSection(0))") 

for row in 0..<tableView.numberOfRowsInSection(0) { 
    print("Row = \(row)") 

    if let _ = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: row, inSection: 0)) { 
     // All is OK. 
    } else {print("THIS SHOULD NO HAPPEN!!")} 
} 

は、私はデバッガウィンドウで得るものです:

Number of row = 5 
Row = 0 
Row = 1 
Row = 2 
Row = 3 
Row = 4 
THIS SHOULD NO HAPPEN!! 
(lldb) 

私の質問です:なぜ私がやりますメッセージを受け取りますか?これは必要ありません!!

最後の行にセルがあるはずです。何がうまくいかないのですか?

+0

そのセルは表示されないためです。これを参照してください:http://stackoverflow.com/questions/5232849/cellforrowatindexpath-returns-nil – t4nhpt

+0

最後のセルが表示されていることを確認しました。あなたが現在画面に表示されていることを意味しない限り?あなたが言及した投稿を見ていきます。 – Michel

+0

はい、私は「画面に表示」を意味していました。テーブルのすべてのセルを表示することはできないため、画面に表示されるアイテムをユーザーに表示し、スクロールするときに他のセルを読み込むだけです。 – t4nhpt

答えて

0

あなたが「これはいいね!」となっている最後のセルですか?メッセージは表示されませんか? cellForRowAtIndexPathは、セルが表示されていないか、インデックスパスが範囲外の場合はnilを返します。

関連する問題