Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITableView.visibleCells()未返回所有单元格_Ios_Swift_Uitableview - Fatal编程技术网

Ios UITableView.visibleCells()未返回所有单元格

Ios UITableView.visibleCells()未返回所有单元格,ios,swift,uitableview,Ios,Swift,Uitableview,我使用的是UITableViewController。UITableView显示11个自定义单元格。 其中10个是动态的,一个是静态的 然而,用以下方法计算行数: let cells = self.tableView.visibleCells as? [chatUebersicht] 或 for(var row=0;row

我使用的是
UITableViewController
UITableView
显示11个自定义单元格。 其中10个是动态的,一个是静态的

然而,用以下方法计算行数:

let cells = self.tableView.visibleCells as? [chatUebersicht]

for(var row=0;row
正在返回正确的号码。它每次都返回数字5。
我认为预装电池有问题。有没有办法克服这个问题?

VisibleCell
只返回您当前可以看到的可重用单元格。这就是
UITableView
的美妙之处——每一行数据都没有一个单元格实例


您应该重新评估您试图执行的操作,并确定这是一个表示操作,还是可以通过使用提供tableview数据源的数据数组来执行的操作。

是否所有11个单元格都同时显示在屏幕上?看起来屏幕上一次只能看到5个单元格。你想实现什么目标?为什么需要单独阵列中的单元格?一次只能看到5个单元格。我知道VisibleCell会计算这些。但是对于另一个阵列来说是什么呢@Paulw11@VojtaStavik我的UISearchBar中需要一些过滤过的单元格。
cellForRowAtIndexPath
也只会返回可见的单元格。第二块代码有效地实现了与
visibleCells
相同的功能。由于UITableViewCells被设计为可重用的,因此任何屏幕外的行在概念上都没有指定单元格对象。您应该对基础数据进行操作,而不是依赖单元格。通常,如果要以某种方式更新单元格,则只需检索单元格,而如果一行在屏幕外,则不需要检索单元格
for (var row = 0; row < gruppenNamen.count; row++) {      
  if let cell:chatUebersichtCell = table.cellForRowAtIndexPath(NSIndexPath(forRow: row, inSection: 0)) as? chatUebersichtCell {            
    cells.append(cell)
  }
}