如何在分页中使用延迟加载?

发布于 2024-11-06 10:08:24 字数 808 浏览 0 评论 0原文

我有一个 viewController,因为我使用了页面控件。每个页面有 4 个 imageView。

我已经通过了Xml,并根据其中的图像数量,我得到了pageControl的页数,即(NumberOfImages/4)。

我已经完成了这样的代码...

首先我获取每个图像的 url 并将它们存储在数组中..

for(int i=0;i<[Array Count];i++)
{
imgString=[NSString stringWithFormat:@"%@",[Array objectAtIndex:i]];
NSLog(@"string :%@",imgString);
NSString *abc=[imgString tringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//NSLog(@"abc :%@",abc);

NSURL *url=[NSURL URLWithString:abc];
NSLog(@"url :%@",url);

NSData *data = [NSData dataWithContentsOfURL:url];

[ImageArray addObject:[UIImage ImageWithData:data]];
}

上面的代码需要时间从 URL 获取图像。直到所有 r 未获取为止我必须等待..

所以我想在这里使用延迟加载..我已经展示了Apple TableView的延迟加载示例..但不知道如何将它与分页一起使用?

那么有人可以建议我为此做什么吗? 任何帮助表示赞赏..

I have a viewController, in that i have used Page control. and each page have 4 imageViews.

I have passed Xml and according to number of images in that i got the number of pages of pageControl that is (NumberOfImages/4).

I have done my code like this...

first i get url of each images and store them in Array..

for(int i=0;i<[Array Count];i++)
{
imgString=[NSString stringWithFormat:@"%@",[Array objectAtIndex:i]];
NSLog(@"string :%@",imgString);
NSString *abc=[imgString tringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//NSLog(@"abc :%@",abc);

NSURL *url=[NSURL URLWithString:abc];
NSLog(@"url :%@",url);

NSData *data = [NSData dataWithContentsOfURL:url];

[ImageArray addObject:[UIImage ImageWithData:data]];
}

The above code takes time to fetch images from URL.and until all r not fetched i have to wait..

So i want to use Lazy Loading Here..I have show apple Lazy Loading Example for TableView..but not getting how to use it with Paging??

so can anyone suggest me what can i do for this??
any Help is appreciated..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨小沫ゞ 2024-11-13 10:08:24

您可以为 UIImageView 类创建一个类别,并添加一些方法来执行以下操作:

从 tmp 目录中的缓存文件加载图像 - 如果找不到缓存文件,请从 Web 下载图像在后台线程上然后将其保存到缓存中。

通过首先检查缓存文件,您可以跳过重新下载内容。

通过在后台线程上下载图像,您的应用程序在等待内容完成加载时不会出现滞后。

通过使用类别,您的方法将适用于您想要使用的任何 UIImageView - 甚至可以在分页中工作。

我不会在这里发布完整的代码解决方案,而是建议您研究和开发自己的解决方案。

祝你好运。

You could create a Category for the UIImageView class and add some methods that will allow you to do the following:

Load the image from a cache file in the tmp directory - if a cache file can't be found, download the image from the web on a background thread then save it to cache.

By checking for a cache file first you can skip re-downloading the content.

By downloading the image on a background thread your application will not lag while waiting for content to finish loading.

By using a Category, your methods will apply to any UIImageView you want to use - and will even work in paging.

Rather than post a complete code solution here I'm going to suggest that you research and develop your own solution.

Best of luck.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文