ImageView contentMode正确缩放图像?

时间:2012-01-26 08:04:16

标签: iphone ios xcode ipad

我正在绘制一堆UIImageView(100x100)作为菜单项。每个都有自己的图像,有些大于100x100,有些小。默认情况下,具有较大图像的imageViews按比例缩小,以便很好地适应100x100框。

然而,小于100x100的图像正在按比例放大,这使得它们非常模糊。我喜欢它,所以较小的图像只是保持自然的大小。否则我对大图像缩放的方式感到满意,而不是较小的图像。

切换到UIViewContentModeScaleAspectFitUIViewContentModeScaleAspectFillUIViewContentModeScaleToFill,我无法取得任何成就。

有没有人有关于如何实现这一目标的想法或黑客?我可以使用if语句来检查图像的尺寸并发送它们的contentMode(中心?),但这似乎有些过时,因为我正在使用NSDictionary循环从for in绘制每个项目。任何帮助赞赏。感谢

1 个答案:

答案 0 :(得分:4)

如果我理解正确,您可以在设置框架之前先检查图像尺寸,例如:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageName:@"myimage.png"]];
[imageView sizeToFit];

CGRect newFrame = imageView.frame;
if (newFrame.size.width > 100) newFrame.size.width = 100;
imageView.frame = newFrame;

你需要一些额外的逻辑来为高度做类似的事情。这是你的意思吗?