我正在寻找如何为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;
}
答案 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"];