如何让UIImageView加载图像,但URL在UILabel上?

时间:2011-09-17 00:13:46

标签: iphone ios uiimageview uilabel

如何UIImageView加载图片,但网址是UILabel

更多解释:我有UILabel包含图片网址,因此我希望此地址在UIImageView上加载图片。我想它涉及一些编码,但我不知道如何做到这一点。请帮忙!

2 个答案:

答案 0 :(得分:3)

UIImage *myImage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:yourlabel.text]]];

在UIImageView上添加以上图片:

UIImageView *img = [[UIImageView alloc] initWithImage:myImage];

编辑:转到here并阅读“类别”部分。那里的示例方法检查您的字符串是否是带有http://前缀的URL。使用它,如果它返回NO,只需将字符串“http://”作为前缀添加到yourlabel.text,然后将其传递给上面而不是yourlabel.text

是的,正如链接所说,它只是基本的URL检测,只是验证字符串是否带有前缀为http://

示例代码:基于窗口的简单应用

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.

    UILabel *label = [[UILabel alloc] init];
    label.text = @"http://www.arthistoryarchive.com/arthistory/cubism/images/PabloPicasso-Weeping-Woman-with-Handkerchief-1937.jpg";
    UIImage *myImage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:label.text]]];
    UIImageView *img = [[UIImageView alloc] initWithImage:myImage];
    img.frame = CGRectMake(0, 0, 768, 1024);
    [self.window addSubview:img];
    [self.window makeKeyAndVisible];
    return YES;
}

答案 1 :(得分:0)

这比你想象的容易。

首先,将您的网址字符串转换为NSURL

NSURL*   imageUrl  = [NSURL URLWithString:url];

然后在该URL加载数据

NSData*  imageData = [NSData dataWithContentsOfURL:imageUrl];

然后将该数据加载到UIImage

UIImage* image     = [UIImage imageWithData:imageData];

最后,告诉您的UIImageView显示该图像

imageView.image = image;