-1

我正在开发一个类似于 Facebook 的 iPhone 应用程序,但目的不同。UITableView我在内容、照片、点赞数、评论、标题等中的每一行都有一组数据。我有自定义单元格,它继承UITableviewcell了我在其中创建了所有 UI 对象,例如UIIMageView, UILabel,UIButton等等。在滚动我的时候,UITableView我会将我的数据提供给这个自定义单元格,它工作正常。

我的问题是滚动速度!

每当我滚动时,它就会被击中并且滚动很慢。我所有的 UI 组件分配都在主线程中完成。

有什么方法可以提高滚动速度或在单独的线程中为我的 UI 组件分配值?

4

6 回答 6

2

就是这个问题,All my UI components assignment are done in main thread.!!

不应使用主线程来获取 url 或其他资源。会影响用户体验。获取图像 url 等应在单独的后台线程中执行,然后在下载完成后使用图像数据更新主线程。这应该可以解决您的问题。

还要弄清楚在主线程中执行了哪些任务,并查看哪些与 UI 无关,将这些任务移至后台线程...

在 UITableViewCell 中延迟加载图像

于 2013-01-03T08:45:50.603 回答
0

尝试以下链接在 tableview 中创建延迟加载,这将使您的 tableview 滚动平滑

https://github.com/enormego/EGOImageLoading

http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html

快乐编码!!!!

于 2013-01-03T09:03:00.550 回答
0

我不知道我是否真的得到了你的要求,但是当你滚动你的 tableview 时,它看起来像是滞后吗?因为获取数据?

试试这个: https ://github.com/rs/SDWebImage

说明很容易理解和理解。这就是我尝试制作我的 Youtube 提要时所做的事情(包括图片、视频标题、视频描述、发布日期等)。希望它可以帮助你

于 2013-01-03T09:41:44.333 回答
0

我使用AsyncImageView加载图像UITableViewCells

于 2013-01-03T09:44:25.653 回答
0

您可以通过以下方式执行此操作:

1)采用自定义表格视图单元格。(不是必需的,但更好看和优化的代码)。

2)对单元格中的图像实施延迟加载。

延迟加载是快速滚动和内存优化的好方法。

您将在表格视图中准备好延迟加载的演示,并且苹果也提供了相同的演示。

这将解决您的问题。

干杯和快乐编码!

于 2013-01-03T08:51:30.170 回答
0

这个问题是由于下载图像而出现的。当您向下滚动表格并释放其他单元格时,会创建表格单元格。创建单元格时,它会下载该单元格的图像,这就是当时主线程暂停的原因。下载图像后,它会移动到下一个单元格。

您需要在另一个线程中下载图像,而不是在主线程中。developer.apple.com 上的示例代码已提供,请检查此内容。我认为它对你有帮助。

懒人Loding的示例项目代码

于 2013-01-03T09:01:35.940 回答