图像的大小与 UIImageView 的实际大小无关,而 UIImageView 的大小仅取决于 Interface Builder 中赋予它的大小(或您分配给它的大小)。否则,例如,当您将 @2x 图像用于 Retina 显示器时,图像会很奇怪。
如果要解决此问题,还必须在设置图像时更改框架。如果你现在这样做:
[imageView setImage:[UIImage imageNamed:@"myImage.jpg"]];
将其更改为:
UIImage img = [UIImage imageNamed:@"myImage.jpg"];
[imageView setImage:img];
imageView.frame = CGRectMake(imageView.frame.origin.x, imageView.frame.origin.y,
img.size.width, img.size.height);
然而,这不会改变它包含的视图的布局,你可以让它在 iOS 6 下使用布局约束自动改变其他视图的大小。如果您是 Apple 开发人员,您可以观看 WWDC 说明视频,他们解释了该系统如何运作良好。
如果您对视图没有增长感到满意,而问题只是当您将其更改为与包含视图的尺寸不匹配的图像时图像如何溢出它的边界,您可以在界面中设置“剪辑子视图”复选框图像视图的生成器。这将使视图不会在它自己的边界框之外绘制任何东西,如果您还将缩放模式设置为“Aspect Fill”或“Scale To Fill”,图像将始终填满包含视图的整个边界.