Xcode iPhone编程:从URL将jpg加载到UIImageView中

Ant*_*gia 21 iphone url xcode objective-c uiimageview

我的应用程序必须从http服务器加载图像并将其显示到UIImageView
我该怎么办?
我试过这个:

NSString *temp = [NSString alloc];
[temp stringwithString:@"http://192.168.1.2x0/pic/LC.jpg"]
temp=[(NSString *)CFURLCreateStringByAddingPercentEscapes(
    nil,
    (CFStringRef)temp,                     
    NULL,
    NULL,
    kCFStringEncodingUTF8)
autorelease];


NSData *dato = [NSData alloc];
 dato=[NSData dataWithContentsOfURL:[NSURL URLWithString:temp]];
 pic = [pic initWithImage:[UIImage imageWithData:dato]];
Run Code Online (Sandbox Code Playgroud)

此代码在视图的viewdidload中,但没有显示任何内容!服务器正在运行,因为我可以从中加载xml文件.但我不能显示那个图像!
我需要以编程方式加载图像,因为它必须根据传递的参数进行更改!先感谢您.安东尼奥

Dav*_*ong 82

它应该是:

NSURL * imageURL = [NSURL URLWithString:@"http://192.168.1.2x0/pic/LC.jpg"];
NSData * imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage * image = [UIImage imageWithData:imageData];
Run Code Online (Sandbox Code Playgroud)

一旦你有image变量,你就可以把它扔进一个UIImageView它的image属性,即:

myImageView.image = image;
//OR
[myImageView setImage:image];
Run Code Online (Sandbox Code Playgroud)

如果您需要转义原始字符串中的特殊字符,您可以执行以下操作:

NSString * urlString = [@"http://192.168.1.2x0/pic/LC.jpg" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL * imageURL = [NSURL URLWithString:urlString];
....
Run Code Online (Sandbox Code Playgroud)

如果您以UIImageView编程方式创建,则执行以下操作:

UIImageView * myImageView = [[UIImageView alloc] initWithImage:image];
[someOtherView addSubview:myImageView];
[myImageView release];
Run Code Online (Sandbox Code Playgroud)


nos*_*uic 6

而且因为从URL加载图像需要很长时间,所以最好以异步方式加载它.以下指南对我来说简单易懂:

http://www.switchonthecode.com/tutorials/loading-images-asynchronously-on-iphone-using-nsinvocationoperation