iphone - ImageView contentMode 正确缩放图像?

标签 iphone ios xcode ipad

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

但是,小于 100x100 的图像会被放大,这使得它们非常模糊。我想要它,所以较小的图像只是保持它们自然的大小。否则我对大图像的缩放方式感到满意,而不是较小的图像。

我无法通过切换到 UIViewContentModeScaleAspectFitUIViewContentModeScaleAspectFillUIViewContentModeScaleToFill 来实现任何目标。

有没有人对我如何实现这一点有想法或技巧?我可以使用 if 语句来检查图像的尺寸并发送它们的 contentMode(居中?),但这似乎有点老套,因为我是从 NSDictionary 中绘制每个项目的 for in 循环。任何帮助表示赞赏。谢谢

最佳答案

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

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;

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

关于iphone - ImageView contentMode 正确缩放图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9015276/

相关文章:

iphone - 切换表单输入动画在移动 Safari 中奇怪地弹跳

ios - 如何使用 alpha channel - PNG(替换颜色)仅对 UIImage 的一部分着色?

ios - 将 NstaggedpointerString 转换为 int

ios - Xcode 中两个目标中的 swift 包导致重复符号

javascript - 无法再通过 CMD+D 打开开发菜单或通过 CMD+R 重新加载

objective-c - AssetForURL 返回 nil

iphone - -[__NSCFArray objectAtIndex :]: index (1) beyond bounds (1)

ios - 如何保护 NSUserDefaults 上的整数数据免遭黑客攻击?

ios - 如何在3D Touch下注册预览单个单元格?

iphone - 如何以编程方式向下滚动 UITable