如何使UIImageView自动resize的图像加载的大小

我已经把IB的UIImageView控件放在了我的视图中。 控件的大小只是我决定的东西,相当随机的大小真正我想要做的是每当我将图像属性设置为新的图像时自动resize的控件。 我希望它实际上调整到图像的大小。 可以自动完成吗? 没有任何代码干预? 如果不是,这种情况下最好的方法是什么?

今天发生的事情很奇怪。 我将图像加载到ImageView中,即使ImageView的大小没有改变,我也能看到正确显示的图像。 这干扰了我抓取用户触及ImageView的意图。 用户触摸实际的图像,但由于图像的某些部分是在ImageView的外部(这是奇怪的部分) – 点映射变得疯狂有人可以想到任何解释呢?

谢谢

图像的大小与UIImageView的实际大小没有多大关系,而UIImageView的大小完全取决于Interface Builder(或分配给它的大小)的大小。 否则,当您使用@ 2x图像作为视网膜显示器时,图像将会变得很糟糕。

如果你想解决这个问题,你也必须在设置图像的时候改变框架。 如果你现在这样做:

[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指令video,他们解释了该系统的工作原理。

如果视图没有增长,并且问题在于图像如何溢出,当您将其更改为与包含视图的维度不匹配时,您可以在“界面”中设置“剪贴子视图”checkbox图像视图的生成器。 这将使得视图不会在它自己的边界框之外绘制任何东西,如果您还将缩放模式设置为“Aspect Fill”或“Scale To Fill”,图像将始终填满包含视图的整个边界。