从webservice获取的图像未显示在viewcontroller中

时间:2013-09-17 09:34:28

标签: ios objective-c uiimageview imageview

我尝试获取图像位置但是没有在UIImageView中显示它,用于获取的代码是,

在class.h文件中,

@property (strong, nonatomic) IBOutlet UIImageView *imageview;

class.m文件,

NSString *imagee;

imagee = [result objectForKey:@"image"];
NSLog(@"image is %@ \n",imagee);

'imagee'字符串可以返回图像的确切网址。

图像显示代码是,

UIImage *imagevieww = [UIImage imageNamed:[result objectForKey:@"image"]];
imageview.image = imagevieww;

但是在最后我可以获得放置图像的空白区域。

7 个答案:

答案 0 :(得分:2)

找到我的问题的答案,感谢帮助我找到这个答案的每个人。

更新:在urlstring中加入'http',以便它可以从网络服务中获取正确的图像。

 NSString *urlString = [NSString stringWithFormat:@"http://%@",[result objectForKey:@"image"]];
    NSLog(@"url image is %@ \n",urlString);

    NSData *imageData = [[NSData alloc] init];

   imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];

    NSLog(@"image data is %@",imageData);

    imageview.image = [UIImage imageWithData:imageData];

答案 1 :(得分:1)

UIImage方法imageNamed:用于加载本地存在的图像。在您的情况下,您需要从URL下载图像。根据要求,有多种方法可以做到这一点。

最容易的是,

//URL encode the string
NSString *url = [[result objectForKey:@"image"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
imageview.image = [UIImage imageWithData:imageData];

这将同步并在主线程上下载图像(如果从主线程调用)。您希望在后台线程上异步执行此操作。通常dispatch_async(GCD)用于执行此操作。

希望有所帮助!

答案 2 :(得分:0)

如果'imagee'返回了确切的网址,那么从网络服务中获取图片应该是这样的。

imageview.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[result objectForKey:@"image"]]]];

答案 3 :(得分:0)

试试这个

NSString *imageString = [NSString stringWithFormat:@"data:image/jpg;base64,%@",[yourDict objectForKey:@"ImageString"]];
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageString]];
UIImage *image = [UIImage imageWithData:imageData];

答案 4 :(得分:0)

<强>·H

@property (strong, nonatomic) IBOutlet UIImageView *imageView;

<强>的.m

从Web服务获取图片:

NSURL *url = [NSURL URLWithString:@"http://www.site.com/image.jpg"];
NSData *myImageData = [NSData dataWithContentsOfURL:url];        
UIImage *image = [[UIImage alloc] initWithData:myImageData];

将图像设置为ImageView:

imageView.image = image;

答案 5 :(得分:0)

我做了以下工作,对我有用。

NSURL *url = [NSURL URLWithString:@"http://www.yourdomain.com/imagename.png"];
NSData *myData = [NSData dataWithContentsOfURL:url];
UIImage *image = [[UIImage alloc] initWithData:myData];
["%storyboardImageName%" setImage:image];

请注意,storyboardImagename是您放在xib或storyboard上的变量。你需要改变它。另请注意&#39; setImage&#39;实际上将它联系在一起的属性。

希望这会有所帮助。

答案 6 :(得分:-1)

URL转换为UIImage

试试这个:

NSURL *url = [NSURL URLWithString:@"http://yoursite.com/imageName.png/jpg"];

NSData *myData = [NSData dataWithContentsOfURL:url];

UIImage *image = [[[UIImage alloc] initWithData:myData] autorelease];

在imageview上使用此图片。如果您遇到问题,请尝试在后台下载图像。 Follow this Link