在滚动时更新UIScrollView中的UITextView使scrollView停止滚动

时间:2012-04-20 06:07:18

标签: objective-c ios uiscrollview uiimageview scroll

  • 我有一个 scrollView ,其中包含12个 UIViews 设置为图块。每个磁贴都包含一个textView。

  • scrollView启用了分页功能。因此,每页有12个图块,您可以水平滚动。

  • 每当我从API调用中收到信息时,我都会更新textView。

这是正确更新textView,但我遇到了很大的问题。每当更新发生时,scrollView实际上滚动到刚刚更新的视图。所以每当我加载一个新的tile列时,scrollview会在它开始加载时停止,即使它有动量!

知道可能导致这种情况的原因吗?

如果我懒得加载没有任何信息的单元格,一切正常,所以我认为它与我更新textView有关。

我已经尝试过了:

  • 使用 NSTimer (并将其模式设置为NSRunLoopCommonModes)。
  • 使用 NSOperationQueue 并在需要更新UI更改时调用主线程。

这些都没有。

2 个答案:

答案 0 :(得分:0)

我认为解决方案在你的帖子中: “每当我需要更新UI更改时,使用NSOperationQueue并调用主线程。”

每当scrollView调用willScroll时,停止当前正在下载的图像&当滚动视图停止滚动&它的委托方法被称为启动新队列以下载图像。

答案 1 :(得分:0)

我的建议是使用仪器进行调试。在仪器中有一个名为" Time profiler"的跟踪模板,您实际上可以看到您的应用程序花费在每个任务上的时间。 但是如果你正在更新textViews,当然主线程将被阻止,因此滚动视图停止滚动直到所有textViews都被更新。所以我的建议是调整性能。 也许你在每个textView中加载了太多东西?