想从字符串url中提取图像

时间:2010-06-04 07:06:54

标签: iphone

我有以下图像xml标签,其中存储了图像路径

NSString *imgstring =[[blogEntries objectAtIndex: blogEntryIndex1] objectForKey: @"image"];

现在我想通过以下方法在UITAble单元格中显示此图像

cell.textLabel.text=imgstring;

我正在获取单元格上的路径而不是实际图像我应该如何显示图像

1 个答案:

答案 0 :(得分:0)

当然,您正在显示文本 - 您正在将UILabel的text属性设置为字符串:)如何知道您希望它显示图像?

你想要像

这样的东西
cell.imageView.image = [UIImage imageNamed:imgstring];

有关详细信息,请查看UITableViewCell documentation

但是,这只适用于项目中的图像 - 对于外部图像,您将需要做更多的工作。

NSString *imgstring =[[blogEntries objectAtIndex: blogEntryIndex1] objectForKey: @"image"];
NSURL *url = [NSURL URLWithString:imgstring];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data];

但是,这将阻止您的应用,直到加载图像。相反,您可能需要加载图像是背景:

    // Tell your code to load the image for a cell in the background
    NSString *imgstring =[[blogEntries objectAtIndex: blogEntryIndex1] objectForKey: @"image"];
    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:cell, @"cell", imgstring, @"imgstring", nil];
    [self performSelectorInBackground:@selector(loadImage:) withObject:dict];

- (void) loadImage:(id)object {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    // Get the data to pass in
    NSDictionary *dict = (NSDictionary *)object;

    // Get the cell and the image string
    NSString *imgstring = [dict objectForKey:@"imgstring"];
    UITableViewCell *cell = [dict objectForKey:@"cell"];

    NSURL *url = [NSURL URLWithString:imgstring];
    NSData *data = [NSData dataWithContentsOfURL:url];
    UIImage *img = [[UIImage alloc] initWithData:data];

    [pool release];
}

但是如果你不小心这个问题,你会遇到线程问题:)

如果您遇到任何其他问题,请发表另一条评论,我会尽力帮助您!

PS我没有测试过这段代码,只是直接输入,所以可能会有拼写错误,对不起!