我们如何以更快的方式在iPhone上上传图像

时间:2011-11-15 11:58:25

标签: iphone xcode image upload

NSURL * imageURL = [NSURL URLWithString:imageurldata];

NSData * imageData = [NSData dataWithContentsOfURL:imageURL];

image1 = [UIImage imageWithData:imageData];

[image1 retain];

我写了上面用于在iPhone上传图像的代码,我正在显示一个新视图,其中我正在显示此图像,但图像需要时间才能显示,直到此时屏幕为空白。我们从url获取图像并将其存储在对象中。有没有同时显示图像和视图?

4 个答案:

答案 0 :(得分:2)

尝试这种异步方法:

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
    dispatch_async(queue, ^{
        NSLog(@"Screen %@ - pauseBannerFileImage download starts", self.name);          
        UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:newUrlForImage]]];
        dispatch_sync(dispatch_get_main_queue(), ^{
            NSLog(@"!-Screen %@-!pauseBannerFileImage downloaded", self.name);
            self.imageView.image = image;
        });
    });

答案 1 :(得分:2)

how to handle tiling of images on the fly

您将只需要TileImageView类并使用它(不是UIImageView,因为它异步处理数据下载),如下所示....

TileImageView *tileImageView  = [[TileImageView alloc]initWithFrame:<myFrameAsPerMyNeeds>];
[tileImageView setTag:<this is the identifier I use for recognizing the image>];
[myImageScrollView addSubView:tileImageView];
[tileImageView startImageDownloading:imageurldata];
[tileImageView release];

谢谢,

答案 2 :(得分:1)

据我所知,从服务器下载数据需要一些时间。覆盖时间延迟的一种方法是在下载图像数据时显示UIActivityIndi​​catorView

答案 3 :(得分:0)

您可能希望在实际需要之前初始化视图,因此在用户需要视图时可能已经发生了加载。