难以在UITableViewCell中更改图像的大小

时间:2013-12-22 02:09:46

标签: ios iphone objective-c uitableview uiimageview

问题: 我在方法cellForRowAtIndexPath中使用以下代码来设置单元格的图像大小,但在运行时,图像会被炸成表格行允许的最大高度和宽度。

UIImage *_image = [imageDictionary objectForKey:@"image"]; // Get image data
[_image drawInRect:CGRectMake(0,0,50,50)]; // set size
[cell.imageView setImage: _image]; // assign image to cell
cell.imageView.frame = CGRectMake(cell.imageView.frame.origin.x,cell.imageView.frame.origin.y,50,50);

return cell;

问题:是否有更强大的方法来控制UITableViewCell中的图像大小?我正在采取的方法来自其他几个帖子,但出于某种原因,我的代码中忽略了它。

旁注:我正在使用Xcode 5并在iOS 7平台上进行开发。

2 个答案:

答案 0 :(得分:1)

使用UITableViewCell contentView

UITableViewCell对象的内容视图是单元格显示的内容的默认超级视图。如果您想通过简单地添加其他视图来自定义单元格,则应将它们添加到内容视图中,以便它们将被正确定位,因为单元格将进入和退出编辑模式。

示例:

 UIImage *_image = [imageDictionary objectForKey:@"image"]; // Get image data
 [_image drawInRect:CGRectMake(0,0,50,50)]; // set size

 UIImageView *imageView = [[UIImageView alloc] initWithImage: _image];
 [imageView setFrame:yourFrame];
 [cell.contentView addSubview:imageView];

答案 1 :(得分:0)

这不能回答问题,但你的方法是潜在的问题。您应该通过继承UITableViewCell来自定义您的单元格。除此之外,将单元格内容作为视图操作比使用它们为您提供的默认图片和文本标签更容易。为了验证,单元格的内容位于称为contentView的视图上,可以作为cell.contentView访问。您可以将文本标签,按钮和图像作为子视图添加到任何位置,任何大小都可以与添加为子视图的任何视图相同。