Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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 如何在后台线程上预先计算单元格高度以提高表视图性能?_Ios_Objective C_Multithreading_Uitableview_Cocoa Touch - Fatal编程技术网

Ios 如何在后台线程上预先计算单元格高度以提高表视图性能?

Ios 如何在后台线程上预先计算单元格高度以提高表视图性能?,ios,objective-c,multithreading,uitableview,cocoa-touch,Ios,Objective C,Multithreading,Uitableview,Cocoa Touch,我已经多次听说过这种提高单元加载性能的策略,并且在中提到它是一种技术,但是我该如何做呢 据我所知,表视图(如果不提供估计的行高度)在有数据源时会要求表视图中每个单元格的高度。因此,在什么情况下我才能进行“预先计算”?在我的头脑中,这意味着在开始时提供一小部分以允许表视图有一个基础,然后在后台线程上计算其余部分。但这似乎不可能,因为表格视图要求所有单元格高度 在Jared Sinclair的帖子中,他还提到他这样做,而不是估计行高,所以我认为这与解决方案无关 那么,如何利用背景线程来提高单元格高度

我已经多次听说过这种提高单元加载性能的策略,并且在中提到它是一种技术,但是我该如何做呢

据我所知,表视图(如果不提供估计的行高度)在有数据源时会要求表视图中每个单元格的高度。因此,在什么情况下我才能进行“预先计算”?在我的头脑中,这意味着在开始时提供一小部分以允许表视图有一个基础,然后在后台线程上计算其余部分。但这似乎不可能,因为表格视图要求所有单元格高度

在Jared Sinclair的帖子中,他还提到他这样做,而不是估计行高,所以我认为这与解决方案无关


那么,如何利用背景线程来提高单元格高度加载?据我所知,我的应用程序在显示大约100个可变高度的单元格时会有几秒钟的延迟,我想对此进行改进。

虽然不完全符合您的要求,但您看过asyncdisplaykit吗

结帐

UIKit是关于主线程的,所以计算BG线程的高度是很困难的。与其这样做,为什么不看看本打算在BG线程上使用的东西呢


在我的一个项目中,我能够使用ASCollectionView(UICollectionView的异步对应项)来提高加载/滚动性能。可能是因为CollectionView也能帮你完成这项工作。

你能解释一下在后台计算单元格高度是如何“困难”的吗?我使用良好的ole GCD很容易做到这一点,没有任何问题。你没有提供足够的细节来回答这个问题吗?