2013-01-03 124 views
-1

我正在开发一个类似Facebook的iPhone应用程序,但用于不同的目的。我在UITableView的每一行都有一组数据,即内容,照片,no.of,喜欢,评论,标题等。我有自定义单元格,它继承了UITableviewcell,其中我创建了所有的UI对象如UIIMageView,UILabel,UIButton等当滚动我的UITableView我会喂养我的数据到这个自定义单元格,它工作正常。UITableView滚动速度

我的问题是滚动速度!

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

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

+0

的可能重复使用AsyncImageView加载图像[UITableView的与图像滚动很慢(http://stackoverflow.com/questions/12703297/uitableview-with-images-非常慢) – Patrick

回答

2

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

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

还找出在主线程得到执行的任务,看看哪些是不相关的UI,将这些任务后台线程...

Lazy load images in UITableViewCell

0

你可以做到这一点在以下方式:

1)自定义tableview单元格。 (没有必要,但更好看,优化代码)。

2)对单元格中的图像执行LazyLoading。

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

您将在Launch Loading的表视图中准备演示,并且Apple也提供相同的功能。

这将解决您的问题。

干杯和快乐编码!

0

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

你需要下载图像在另一个线程不在主线程。 developers.apple.com提供的示例代码已经提供,请检查这一点。我认为它可以帮助你。

sample project code of lazy Loding

+0

我已经停止加载images.Now只有内容已设置,以及即时通讯也为我的用户界面组件设置框架(CGRect)。即使如此,它影响我的滚动速度 – vishnu

+0

滚动速度只有当在单元格视图中加载大量数据。请将单元格中的数据加载到不在主线程中的新单独线程中。你也可以让我们排队多个任务 –

0

我不知道我是否真的得到了你所问的内容,但是当你滚动你的tableview时,它看起来像是滞后了吗?由于提取数据?

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

的指令是很容易跟踪和了解..这就是我所做的,当我试图让我的YouTube饲料(含图片,视频节目,韦迪介绍,发布日期等) 。希望它可以帮助你