UITableView滚动速度

时间:2013-01-03 08:42:33

标签: iphone objective-c ios performance uitableview

我正在开发类似Facebook的iPhone应用程序,但用途不同。我在UITableView中的每一行都有一系列数据,即内容,照片,喜欢,评论,标题等。我有自定义单元格,继承{{1我在其中创建了所有的UI对象,例如UITableviewcellUIIMageViewUILabel等。滚动我的UIButton时,我会将数据提供给此自定义单元格它工作正常。

我的问题是滚动速度!

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

有没有办法提高滚动速度或在单独的线程中为我的UI组件赋值?

6 个答案:

答案 0 :(得分:2)

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

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

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

Lazy load images in UITableViewCell

答案 1 :(得分:0)

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

1)拍摄自定义的tableview单元格。 (没有必要,但对于外观漂亮和优化的代码更好)。

2)在单元格中实现图像的LazyLoading。

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

您将在表格视图中准备好延迟加载演示,而apple也提供相同的演示。

这将解决您的问题。

干杯和快乐的编码!

答案 2 :(得分:0)

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

您需要在不在主线程中的另一个线程中下载图像。 已经提供了developers.apple.com上的示例代码,请查看此内容。我认为这有助于你。

sample project code of lazy Loding

答案 3 :(得分:0)

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

https://github.com/enormego/EGOImageLoading

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

快乐编码!!!!

答案 4 :(得分:0)

我不知道我是否真的得到了你所要求的东西,但是当你滚动你的桌面视图时,它看起来是否落后了?因为提取数据?

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

说明很容易理解和遵循..这就是我尝试制作Youtube Feed时所做的事情(包括图像,视频标题,视频描述,发布日期等)。希望它可以帮到你

答案 5 :(得分:0)

我使用AsyncImageViewUITableViewCells

中加载图片