为UITableViewCell imageView创建缩略图

时间:2011-07-22 16:06:56

标签: iphone uitableview

我正在寻找如何为UITableViewCells重新调整图像的大小,因此它们的大小都相同。我发现了这篇文章UITableViewCell's imageView fit to 40x40,并添加了创建缩略图作为类别的方法。它有效,但现在似乎变慢了,我想知道我是否遗漏了一些东西或者错误地使用了这个类别。目前,在我的cellForRowAtIndexPath方法中,我在这里创建一个新图像,并使用此类别来调整它的大小。所以我猜这不是这样做的方法,因为现在它每次想要在表格中显示时都在做这个绘图吗?我是否需要每行创建缩略图数组并使用它而不是原始图像?如果是这样,我将如何跟踪两个数组(一个用于文本,一个用于图像),以防某些内容被重新排序。谢谢!

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *PopoverIdentifier = @"PopoverIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:PopoverIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:PopoverIdentifier] autorelease];
    }
    NSUInteger row = [indexPath row];
    GTest *gt = [_gtList objectAtIndex:row];
    cell.textLabel.text = gt.Name;
    UIImage *cellImage = [UIImage imageNamed:gt.ImageFile];
    cellImage = [UIImage scale:cellImage toSize:CGSizeMake(50, 50)];
    cell.imageView.image = cellImage;
    return cell;

}

1 个答案:

答案 0 :(得分:1)

你可以创建一个包含图像和文本数据的字典对象数组:

NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:text,@"text",image,@"image"nil];
[array addObject:dict];

并在你的cellForRowAtIndexPath中:

NSDictionary* dict = [array objectAtIndex:i];
UIImage* img = [dict objectForKey:@"image"];
NSString* txt = [dict objectForKey:@"text"];