2012-02-29 47 views
3

在我的应用我有一个包含自定义UITableViewCells一个UITableView。滚动是非常缓慢和缓慢,我需要解决这个问题。的iOS的UITableViewCell优化

每个单元包含5-6个标签,几个按钮,以及图像。

我对细胞,其中I放置的按钮,标签和图像视图中的XIB,但我设置的所有图像中的cellForRowAtIndexPath。加载我使用的图像[UIImage imageNamed:@“”],我认为这对于优化更好。我也是重用细胞。

我还发现,即使我注释掉,不设置图像,表仍然是laggy,只有文本设置标签。

有没有人对如何有同时还具有不错的,流畅的性能相当复杂的表格单元格有什么建议?是否将自定义单元格作为xib阻碍性能?

+0

这将是有益的,看看你的'实现代码如下:的cellForRowAtIndexPath:'执行。 – 2012-02-29 15:00:06

回答

9
  1. 确保您确实在重复使用单元格。请确保您使用的是电池 标识符的UITableViewCell 在Interface Builder的XIB设置。

  2. 使用较少的在你的子视图的透明度。如果可能的话,进入你的标签,并确保它们的背景与单元格的背景相匹配。

  3. 检查未优化的代码。例如,如果你显示格式化的日期和正在创建的NSDateFormatter一个实例每次tableview:cellForRowAtIndexPath:被调用时,这真的会拖垮你的应用程序。

  4. 与时序和核心动画模块使用仪器寻找到你的大部分时间都花在。最终,这些可以揭示真正的性能问题所在。

+0

我实际上意识到我从来没有设置在xib中标识的单元,所以一旦我没有这个滚动图像,现在非常流畅。我还将我的标签设置为纯色并且不透明。就像我现在没有加载1 UIImageView所说的那样,单元格可以顺畅地滚动,但是当我把图像放回去时,它的滚动会有一点滞后,但不会像以前那么大。谢谢! – RyanG 2012-02-29 15:27:21

+0

我也在计算我的cellForRowAtIndexPath中的一个日期:,我将移动它,并在加载表之前获取这些日期。 – RyanG 2012-02-29 15:30:37

4

执行一个自定义UITableViewCell子类,并在一个不透明的UIView上自行绘制drawRect:

做它的方式加快滚动了很多。

+2

而不使用.xib – 2012-02-29 15:02:29

2

在IB中将一些属性设置为NO。

在滚动条,设置 “水平滚动” 为NO。 联系,将“延迟内容触摸”和“撤销内容摩的”到NO

它将使平滑滚动找你的表视图

+0

谢谢我将所有这些设置为NO,它似乎有所帮助,谢谢! – RyanG 2012-02-29 15:36:26

+0

这个,没有帮助我 – 2015-04-23 16:15:29