0

我正在使用 UITableViewCellStyleSubTitle。我正在尝试将缩略图添加到我的表格单元格中。UIViewContentModeScaleAspectFit 似乎无法正常工作,原因不明。我在堆栈溢出中看到了很多类似问题的答案。如果我使用 drawInRect 裁剪图像,它可以工作,就像这样

[thumbnail drawInRect:thumbnailRect];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();

但我想要达到的目标不应该需要我这样做。我只是想缩放图像而不是裁剪它。因此,将默认单元格的图像视图的内容模式设置为“UIViewContentModeScaleAspectFit”应该可以工作..但它没有。

cell.imageView.contentMode = UIViewContentModeScaleAspectFit;

设置缩略图的完整逻辑.. fPath 是图像的路径

UIImage *thumbnail = [UIImage imageWithContentsOfFile:fPath];
[cell.imageView setImage:thumbnail];
cell.imageView.contentMode = UIViewContentModeScaleAspectFit;
cell.imageView.clipsToBounds = YES;
4

1 回答 1

0

我发现 drawInRect 如果尺寸较小则拉伸原始图像,如果尺寸较大则裁剪它。

本文将帮助您准备图像的缩略图 http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/

它有几个有用的 UIImage 类扩展: * UIImage+Resize * UIImage+Alpha * UIImage+RoundedCorner

示例用法:

UIImage *imageThumb = [YourImage thumbnailImage:70 transparentBorder:0 cornerRadius:10 interpolationQuality:kCGInterpolationHigh];

然后你可以使用 drawInRect 方法。如果图像不是矩形 - 图像将裁剪较大的一侧并取图像的中间

希望这个答案能指导你。

于 2013-02-27T17:42:21.187 回答