【问题标题】:UISegmentedControl makes UITableView slow/lag?UISegmentedControl 使 UITableView 变慢/滞后?
【发布时间】:2010-02-18 09:24:33
【问题描述】:
所以我有一个运行良好的 UITableView,由 3 行组成(每行包括图像,以及不同数量的文本字段)。
现在第 4 行有一个 UISegmentedControl。一旦我添加它,UITableView 就会滞后/跳跃/跳过。当我再次把它拿走时,一切都很顺利。
如何添加 UISegmentedControl 并保持平滑滚动?
【问题讨论】:
标签:
iphone
uitableview
iphone-sdk-3.0
uisegmentedcontrol
【解决方案1】:
遇到了类似的问题。在分段控件消失后,滚动回它是不稳定的。问题可能是初始化。
首先检查您是否正确使用了“dequeueReusableCellWithIdentifier”(也许您错过了为自定义单元格提供唯一 ID?)
第二次检查是否每次在 cellForRowAtIndexPath 中都没有执行 removeAllSegments 和 insertSegmentWithTitle。将一些 int 添加到您的自定义单元格中,以告诉您它是新单元格还是具有一定数量段的重复使用的单元格。然后在您“dequeueReusableCellWithIdentifier”之后,如果单元格具有确切数量的段,则不需要清除和添加。
在我的情况下,我检查了第一个但没有检查第二个,这使我的滚动滞后。看来,段清除和添加是一项昂贵的操作。
希望这会有所帮助。
【解决方案2】:
我也有类似的问题。由于业务逻辑,我的应用程序应该每隔几秒钟更新单元格。每个单元格都有一个分段控件,我正在删除所有分段并为每次更新再次添加它们。一段时间后,滚动变得异常缓慢。我仅在确实需要时才解决删除/添加段的问题,而不是为每次更新都这样做。我也在使用“dequeueReusableCellWithIdentifier”。现在工作正常。