首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS UITableViewCell优化

iOS UITableViewCell优化
EN

Stack Overflow用户
提问于 2012-02-29 22:53:54
回答 3查看 4.9K关注 0票数 3

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

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

我有一个单元的xib,我在这里放置按钮、标签和图像视图,但是我在cellForRowAtIndexPath中设置所有的图像。要加载图像,我使用UIImage imageNamed:@"",我读取它更有利于优化。我也在重复使用细胞。

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

有没有人对如何在保持良好的流畅性能的同时拥有一个相当复杂的表格单元格有什么建议?将自定义单元用作xib会影响性能吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-29 22:58:57

  1. 确保你真的重用了单元。确保在界面生成器的UITableViewCell的XIB中设置了您正在使用的单元格标识符。
  2. 在您的子视图中使用较少的透明度。如果可能的话,进入你的标签并确保它们的背景与单元格的背景相匹配。
  3. 检查未优化的代码。例如,如果你正在显示格式化的日期,并在每次调用tableview:cellForRowAtIndexPath:时创建一个NSDateFormatter实例,这将真正使你的应用程序陷入困境。
  4. 使用带有计时和核心动画模块的工具来找出你的大部分时间都花在了哪里。最终,这些可以揭示真正的性能问题所在。
票数 10
EN

Stack Overflow用户

发布于 2012-02-29 22:56:56

实现一个自定义的UITableViewCell子类,并在一个不透明的UIView上用drawRect:绘制自己的图形。

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

票数 4
EN

Stack Overflow用户

发布于 2012-02-29 23:32:38

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

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

它将使您的表视图平滑滚动

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9501304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档