2012-04-20 128 views
0

这是正确更新textView,但我有一个巨大的问题。每当更新发生时,scrollView实际上会滚动到刚刚更新的视图。所以,无论何时我加载一列新的图块,当它开始加载时,滚动视图都会停止,即使它具有动量!

任何想法可能会造成这种情况?

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

我已经尝试:

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

这些都没有工作。

+0

我的解决方案是将UITextView更改为UILabel并没有发生任何事情。如果有人真的有答案,我会保持开放。 – OlivaresF 2012-04-22 04:18:40

+0

你是说换成UILabel修复这个问题吗?尝试将UITextView editable属性更改为NO,并查看是否有帮助。确保在更新文本值时将UITextView上的委托设置为nil。 – 2012-05-14 18:54:48

回答

0

我认为解决方案在您的文章中: “使用NSOperationQueue并在我需要更新UI更改时调用主线程。”

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

+0

我已经删除了NSOperationQueue(现在所有内容都在主线程中),但它仍然无法工作。 – OlivaresF 2012-04-20 15:55:50

0

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

+0

我只更新textViews的文本属性。不幸的是,我没有时间尽快作出回应,但我肯定会随着我最终发现的任何内容更新这篇文章(正如我的评论在那里指出我已将其更改为UILAbel)。 – OlivaresF 2012-04-22 23:28:20