2

我是 iOS 开发的新手,所以请多多包涵。我正在使用表格视图和滚动视图制作照片网格。我的问题是如何加载活动指示器,直到从服务器下载图像然后显示图像并删除活动指示器?

我试图远离第三方库,因为我想了解它是如何工作的。

4

2 回答 2

4

在您的视图上放置一个活动指示器(通过 Interface Builder 或手动)。将属性设置为“不制作动画时隐藏”。

在进行服务器调用时,调用 [activityIndi​​cator startAnimating](IBOutlet 属性)。当返回实际图像时,调用[activityIndi​​cator stopAnimating]。停止时会自动隐藏。

您还可以使用 iPhone/Pad 状态栏中的活动指示器。为此,请使用 [[UIApplication sharedApplication] setNetworkActivityIndi​​catorVisible:YES]; 设置为 NO 以隐藏它......(显然)

查看下载图像异步以获取图像的示例。您将在 didReceiveData 函数中停止活动指示器。

于 2012-04-30T06:23:32.573 回答
0

https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCsQFjAA&url=https%3A%2F%2Fgithub.com%2Fjakemarsh%2FJMImageCache&ei=UEp7U_W2GoWB8gWShIGgBQ&usg= AFQjCNEc0a59K2wEOlZ2IbapWhVc87kHmg&bvm=bv.67229260,d.dGc

在这里,您可以找到可用于下载图像的 JMImage 缓存文件。

你必须改变 UIImageView+JMImageCache.m 文件

    if(i) {
        dispatch_async(dispatch_get_main_queue(), ^{
            safeSelf.jm_imageURL = nil;

            safeSelf.image = i;

            [safeSelf setNeedsLayout];
            [safeSelf setNeedsDisplay];

            if (completionBlock) {
                completionBlock(i).
            }
        });

然后使用方法

enter code here

{

[yourImageView setImageWithURL:[NSURL URLWithString:urlString] placeholder:[UIImage imageNamed:@"placeholder"] completionBlock:^(UIImage *image) { // 移除此处添加的活动指示器

}failureBlock:^(NSURLRequest *req,NSURLResponse *resp,NSError *error)
{
// show error message
}];

}

于 2014-05-20T12:35:22.070 回答