神秘的UITableView卡住了问题

时间:2009-08-27 18:06:30

标签: iphone uitableview scroll uiscrollview

我是iPhone开发的新手。我正在处理包含复杂自定义单元格的表视图(默认UITableView子类),其中包含多个子视图和控件。滚动不是很顺利,但我现在就离开了。

问题是,当我使用快速滑动滚动表格视图时,表格有时会突然停止滚动并且滚动指示符不会消失,我必须再次滑动以使其滚动。

如果表中包含的行数很少,比如说5或6,它就不会卡住。我使用的自定义单元格类来自此处提供的示例: http://blog.atebits.com/2008/12/fast-scrolling-in-tweetie-with-uitableview/

任何人都可以提出这个问题的提示或解决方案吗?提前谢谢。

3 个答案:

答案 0 :(得分:1)

  1. 表格单元格仅在需要时创建,即它们进入视图时,通常在它们离开视图时被卸载和释放。
  2. 在您的单元格创建代码中输入NSLog( @"Cell loading" );并检查控制台,以便在滚动时看到这种情况。
  3. 您使用的是缓存吗?这些文档演示了如何缓存表格单元格以提高性能。在创建table cells时你还在做什么?如果有任何性能下降,你可能不会在创建单元格时发生这种情况。
  4. 我所做的是在加载表格之前生成所有内容,并在创建单元格时将所有内容简单地放入视图中。
  5. 任何类型的绘图都会大大降低性能,尤其是在使用透明度时。

答案 1 :(得分:1)

对于后代,只有在你使用Unity-iphone时才有效:这个问题让我疯了,我在这篇帖子中修改了它的建议:

http://forum.unity3d.com/threads/113815-quot-Sticky-quot-scrolling-in-UITableView-and-UIScrollView-when-interfacing-Unity-and-Obj-C

将预处理程序标志更改为

#define USE_DISPLAY_LINK_IF_AVAILABLE 0

给了这个问题一个圆满的结局。

答案 2 :(得分:0)

我会看一下你的cellForRowAtIndexPath方法 - 解决几个可能的问题。

如果您没有使用单元格重用,这会使事情变得非常缓慢,并且您在cellForRowAtIndexPath委托方法中重新分配或重新初始化自定义单元格会导致严重的性能问题。

如果你发布了该方法的代码,我们可以给你一些关于可能导致它的原因的提示。