自定义表格单元格以显示图像

时间:2011-05-30 07:14:20

标签: objective-c cocoa-touch ios uitableview uiimageview

我打算将图片(通过URL字符串)添加到表格视图中。但是,照片图像不会显示在表格中。以下是我的代码。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

        UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectZero];
        imageView.tag = kImageValueTag;
        [cell.contentView addSubview:imageView];

        [imageView release];
    }

    // Configure the cell...
    NSUInteger row = [indexPath row];
    Photo *thisPhoto = [self.thisArray objectAtIndex:row];

    UIImageView *thisImageView = (UIImageView *)[cell.contentView viewWithTag:kImageValueTag];
    NSData * imageData = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString: thisPhoto.imageURL]];

    NSLog(@"URL: %@",thisPhoto.imageURL);

    thisImageView.image = [UIImage imageWithData:imageData];

    return cell;
}

我的所有图片都有不同的尺寸。如何使表格根据尺寸显示图像?

1 个答案:

答案 0 :(得分:2)

以下博客文章可以指导您从互联网下载单元格中的图像。

MHLazyTableImages – Efficiently Load Images for Large Tables

HJCache: iPhone cache library for asynchronous image loading and caching.

当您根据图像询问单元格大小时,我建议您显示预定义矩形中的所有图像,并且对所有图像都是相同的。

虽然您可以根据图片大小更改每个单元格的大小,但会降低UITableView的效果。