Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.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
如何加速&;在iPhone中使单元格平滑滚动?_Iphone_Scroll_Performance_Smooth - Fatal编程技术网

如何加速&;在iPhone中使单元格平滑滚动?

如何加速&;在iPhone中使单元格平滑滚动?,iphone,scroll,performance,smooth,Iphone,Scroll,Performance,Smooth,我用UIView和UITableViewController做了一个文本渲染程序。我所做的是在使用drawRect方法之前,我只计算所有单元格的高度以及每个文本的开始高度和宽度。因此,我可以大致估计单元格高度,然后绘制文本 我在纵向和横向模式下都这么做了。我的程序看起来像twitter更新。当用户切换到横向模式时,我对横向模式进行了相同的计算。下次,我只需检索存储的绘图文本数据(在应用程序退出之前有效) 现在我的问题是,当我的输入较少时,它工作得很好。但是对于巨大的输入,比如说100个输入,显示

我用UIView和UITableViewController做了一个文本渲染程序。我所做的是在使用drawRect方法之前,我只计算所有单元格的高度以及每个文本的开始高度和宽度。因此,我可以大致估计单元格高度,然后绘制文本

我在纵向和横向模式下都这么做了。我的程序看起来像twitter更新。当用户切换到横向模式时,我对横向模式进行了相同的计算。下次,我只需检索存储的绘图文本数据(在应用程序退出之前有效)

现在我的问题是,当我的输入较少时,它工作得很好。但是对于巨大的输入,比如说100个输入,显示文本需要一些时间。另外,我的程序的滚动有些不平稳。我的应用程序也没有漏洞

请任何人建议我做这个应用程序的好方法,使它如此顺利和更快

提前感谢,,
Rajkanth

对此的简短回答是最小化在渲染单元时所做的任何计算。这包括任何透明背景。要实现最快的滚动,理想情况下,您将拥有很少数量的非不透明元素。

诀窍是通过将所有单个元素合并到一个视图中,只拥有一个大的不透明元素


您已经在使用drawRect,但速度仍然很慢,这看起来很奇怪。你能给我看看计算代码吗谢谢你的回复。你说要减少单元格的计算因子。怎么可能呢?我需要做字符换行,单词换行,在显示前计算每个单元格的高度等。我使用不透明值作为1。需要进行如此多的字符串计算才能显示段落。那么我应该怎么做呢?有很多方法可以做到这一点,但最好的方法是在渲染单元格之前找出所有内容。这样,当单元格被渲染时,它是一个简单的值内存查找。我实现它的方法(除其他外)是通过three20。在three20中,在渲染单元格之前设置一个名为tableItem的对象。通常,所有项目都将被设置和存储。然后,当需要滚动时,单元格知道调用预计算项的方法,以便在不进行计算的情况下快速提取信息。在导航转换期间,项目通常在视图加载时呈现。感谢您的回复。。我做了同样的程序,没有三个20。我只是计算每个单词的细节并存储在一个数组中。然后,仅im使用存储的值绘制文本和图像。我同时计算所有字符串的细节,如高度、宽度、位置等。花了这么多时间。是否可以只计算表的可见部分,并为其他单元格进行背景计算和存储?也就是说,我只是计算一些单元格的详细信息,然后显示它们,然后计算不可见的单元格并存储在数组中。可能吗?