我有一个每3秒刷新一次的UITableView。我只有在我的布尔变量为true时才重新加载它。在某些情况下,变量始终为真,时间表难以滚动。 (表现不是很好)。其他时候它确定。我该怎么办?注意:我已经根据苹果推荐的方式(UITableView最佳实践)编码了我的表格,除了向UITableViewCell添加子视图,而不是绘制它,我对其他技术很有信心。UITableView滚动问题
这是什么解决方案?
我有一个每3秒刷新一次的UITableView。我只有在我的布尔变量为true时才重新加载它。在某些情况下,变量始终为真,时间表难以滚动。 (表现不是很好)。其他时候它确定。我该怎么办?注意:我已经根据苹果推荐的方式(UITableView最佳实践)编码了我的表格,除了向UITableViewCell添加子视图,而不是绘制它,我对其他技术很有信心。UITableView滚动问题
这是什么解决方案?
您确定因为刷新了很多而难以滚动。这里提到了什么样的令人耳目一新的功能,从网络刷新数据或刷新表格查看您的手机。
每次刷新表格视图或滚动表格视图时,表格视图都会一直询问相应的单元格,现在整个性能取决于您返回单元格的速度。
如果您正在执行自定义UITableViewCell,则存在性能降低的风险。仔细检查这些东西:
您是否正确使用了您的单元格?检查[tableView dequeueReusableCellWithIdentifier:]是否总是返回零。如果它总是返回零,那么你做错了。
检查是否通过使用多线程从网络或文件加载图像(如果是)来阻止主线程。
后您检查一切,仍然有一个缓慢的表现,那么您可能需要减少返回一个细胞的倍(以较少刷新)或绘制自己
如果您获取大量的细胞为UITableView设置数据,尝试根据需要获取数据。获取cellForRowAtIndexPath中每个单元格的数据,而不是获取表格视图和存储的所有数据。
是的,我从套接字连接流数据并刷新我的表数据。 (使用[表reladData];我通过测量仪器的性能它不显示存储器滚动时生长和无泄漏有 1.应答是YES 2.我的应用程序的应用程序是一个mutithreaded。应用程序,我更新了主线程上的其他视图的UI(使用performSelectorOnMainThread)。这可能是原因吗? – 2010-09-25 14:29:48
内存泄漏通常对性能没什么大不了(即使它可能导致崩溃)你的意思是其他视图的UI ?它是你的表格视图单元UI还是其他UI?通常,滚动需要大量的CPU处理,以便尽可能快地尽可能快地返回单元格以尽量不要使用主线程 – vodkhang 2010-09-25 14:33:28
b即使在这种情况下,如果添加许多子视图(特别是图像),性能可能仍然很低,那么除绘制单元格外,您没有其他选择 – vodkhang 2010-09-25 14:36:33