Iphone iOS UITableViewCell优化

Iphone iOS UITableViewCell优化,iphone,ios,uitableview,smooth-scrolling,Iphone,Ios,Uitableview,Smooth Scrolling,在我的应用程序中,我有一个包含自定义UITableViewCells的UITableView。滚动非常缓慢和滞后,我需要解决这个问题 每个单元格包含5-6个标签、几个按钮和一个图像 我有一个用于单元格的xib,我在其中放置按钮、标签和图像视图,但我在cellForRowAtIndexPath中设置了所有图像。要加载图像,我使用[UIImage imageNamed:@”“],我阅读它会更好地进行优化。我也是重复使用的细胞 我还发现,即使我注释掉并没有设置图像,表格仍然是滞后的,只有标签设置了文本

在我的应用程序中,我有一个包含自定义UITableViewCells的UITableView。滚动非常缓慢和滞后,我需要解决这个问题

每个单元格包含5-6个标签、几个按钮和一个图像

我有一个用于单元格的xib,我在其中放置按钮、标签和图像视图,但我在cellForRowAtIndexPath中设置了所有图像。要加载图像,我使用[UIImage imageNamed:@”“],我阅读它会更好地进行优化。我也是重复使用的细胞

我还发现,即使我注释掉并没有设置图像,表格仍然是滞后的,只有标签设置了文本


有人对如何在保持良好、平滑性能的同时拥有一个相当复杂的表单元格有什么建议吗?将自定义单元格用作xib是否会妨碍性能?

实现自定义的
UITableViewCell
子类,并在一个不透明的
UIView
上在
drawRect:
中进行自己的绘图

这样做可以大大加快滚动速度

  • 确保你真的在重复使用细胞。确保手机 您正在使用的标识符设置在
    UITableViewCell
    在界面生成器中

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

  • 检查未优化的代码。例如,如果每次调用
    tableview:cellForRowAtIndexPath:
    时,您正在显示格式化日期并创建
    NSDateFormatter
    的实例,这将使您的应用程序陷入困境

  • 使用带有计时和核心动画模块的仪器,找出大部分时间花在哪里。最终,这些可以揭示真正的性能问题所在


  • 在IB中,将某些属性设置为“否”

    在滚动条中,将“水平滚动”设置为否。 在触摸屏中,将“延迟内容触摸”和“可取消内容触摸”设置为否


    它将启用平滑滚动您的表视图

    查看您的
    表视图:CellForRowatineXpath:
    实现会很有帮助。我实际上意识到我从未设置xib中标识的单元格,所以一旦设置了,现在在没有图像的情况下滚动非常平滑。我还将标签设置为纯色和非透明。正如我现在所说的,在不加载1 UIImageView的情况下,单元格会平滑地滚动,但当我将图像放回原处时,滚动会稍微滞后,但不会像以前那样快。谢谢我还在计算我的cellForRowAtIndexPath:中的一个日期,我也要将其移出,并在加载表之前获取这些日期。你知道
    NumberFormatter
    是否与
    NSDateFormatter
    具有相同的性能影响吗?@CSjunkie我希望性能问题是相同的,但是你也可以通过分析这些仪器来得到一个明确的答案。我可能会在支持的最旧设备上进行此操作,以获得最坏情况的图片。谢谢,我将所有这些设置为“否”,它似乎确实有点帮助,谢谢!