设置活动指示器,直到从服务器加载图像?

时间:2012-04-30 01:54:12

标签: objective-c ios cocoa ipad

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

我正试图远离第三方图书馆,因为我想了解它是如何运作的。

2 个答案:

答案 0 :(得分:4)

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

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

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

查看dowloading an image async以获取dl图像样本。 您可以在didReceiveData函数中停止活动指示器。

答案 1 :(得分: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]占位符:[UIImage imageNamed:@“placeholder”] completionBlock:^(UIImage * image)     {      //删除添加的活动指标

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

}