来自url的UIImage需要很长时间来加载swift

时间:2016-04-12 10:35:51

标签: ios swift uitableview uiimage

我有一个UITableView,其中有很多UITableViewCell,我使用此代码将内容和图片加载到UITableCell,但每张图片显示的图片需要很长时间{1}}。

UITableViewCell

将代码置于dispatch_async中会使滚动变得更加滑动,但仍然需要时间来加载图像。

如果我有许多像Facebook或Instagram这样的图像,如何让它更快地加载图像。

感谢。

4 个答案:

答案 0 :(得分:2)

使用以下库之一将图像异步加载到您查看:

1)Asyncimageview https://github.com/nicklockwood/AsyncImageView

2)SDWebImage https://github.com/rs/SDWebImage

答案 1 :(得分:2)

由于Async调用和ReUsability会出现问题。让我们说你在IndexPath 1的图像正在加载图像,但它仍然需要时间下载,同时用户向下滚动另一个索引,即15和内部索引1的同一单元格分配给索引15,单元格1的图像将显示在单元格15中,如果您还没有设法处理同一个单元格实例的先前调用。这就是为什么它更好地使用一些缓存库,如SDWebImage(如@ SeanLintern88所说)或AFNetworking's UIImageView Category

AlomaFire's UIImageView (For Swift)

如果您想要执行此操作,那么最好使用子类化,它将帮助您管理呼叫及其终止。

在您的情况下,加载图像可能是因为您从服务器加载的实际图像的大小。 CDN类型的服务提供了一些易于实现的技术,以根据请求提供不同大小的图像。因此,即使用户已经上传了1200x1200大小的图像,但在列表屏幕上,您可以获取其120x120大小的图像,这有助于加快加载速度,同时还可以节省物理内存。

答案 2 :(得分:1)

听起来你的图像尺寸可能很大,因为代码看起来很好,通常像FB / Insta这样的应用程序会使用低分辨率再现,然后在需要之后加载更高分辨率。

大多数人使用图像获取库,例如SDWebImage,因为这会异步获取图像并对其进行缓存,因此您不必将它们保存在模型上并占用内存。

https://github.com/rs/SDWebImage

答案 3 :(得分:0)

“使用以下某个库来异步加载图像到您查看:

1)Asyncimageview https://github.com/nicklockwood/AsyncImageView

2)SDWebImage https://github.com/rs/SDWebImage

很好。