Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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不必要地加载所有单元格_Ios_Swift_Uitableview - Fatal编程技术网

iOS嵌套UITableView不必要地加载所有单元格

iOS嵌套UITableView不必要地加载所有单元格,ios,swift,uitableview,Ios,Swift,Uitableview,在我的两个视图控制器中,我有一个或多个表格视图,其中一个或多个单元格包含嵌套的UITableView,其中还包含20-30个单元格 当单元格进入视图时,顶级表会根据需要加载单元格,但嵌套表似乎会一次请求所有单元格,即使只有顶级单元格可见。如何防止这种情况发生?是否使用动态大小的单元格 如果是这样,您需要通过UITableView.estimatedRowHeight或UITableViewDelegate.estimatedheightforrowatinexpath:指定单元格的适当高度 我通

在我的两个视图控制器中,我有一个或多个表格视图,其中一个或多个单元格包含嵌套的
UITableView
,其中还包含20-30个单元格


当单元格进入视图时,顶级表会根据需要加载单元格,但嵌套表似乎会一次请求所有单元格,即使只有顶级单元格可见。如何防止这种情况发生?

是否使用动态大小的单元格

如果是这样,您需要通过
UITableView.estimatedRowHeight
UITableViewDelegate.estimatedheightforrowatinexpath:
指定单元格的适当高度

我通常在
UITableViewDelegate上缓存单元格的高度。将显示单元格:forrowatinexpath:
并在
UITableViewDelegate上使用缓存的高度。估计的高度forrowatinexpath:

这解决了我遇到的类似问题


否则,所有单元格都会在开始时加载,即使它们不在屏幕上。

单元格中是否需要嵌套的tableview?您可以使用多个部分,因此不是一个部分有10个单元格,而是每个部分有10个部分有1个单元格,然后当您需要显示子单元格时,您只需将它们添加到相关部分?这应该可以解决您的问题。同意@totiG,您确实希望避免嵌套
UITableView
s。@totiG不幸的是,其中一个单元格需要两个并排的表格视图,另一个单元格在表格旁边包含一个ImageView。