ios – 如何使UIImageView自动调整为加载图像的大小

我已经对我的看法放置了一个UIImageView控件.
控制的大小只是我决定的,非常随机的大小真的
我想要做的是当我将图像属性设置为新图像时自动调整大小的控件.我想要它实际上调整到图像的大小.
可以自动完成吗?没有任何代码干预?
如果没有 – 在这种情况下最好的方法是什么?

今天发生什么是奇怪的.我将图像加载到ImageView中,即使ImageView的大小没有改变,我也看到图像正确显示.这干扰了我打算吸引用户触摸ImageView的意图.用户触摸了实际的图像,但是由于图像的某些部分是外部的(这是奇怪的部分)ImageView点映射变得疯狂
有人会想到有什么解释吗?

谢谢

解决方法

图像的大小与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下自动更改其他视图的大小.如果您是苹果开发者,您可以观看WWDC指令视频,他们解释了该系统的工作原理.

如果你的观点没有增长,问题就是图像溢出,当你将它更改为与包含视图的维度不匹配的边界时,可以在界面中设置“剪辑子视图”复选框图像视图的构建器.这将使得视图不会在它自己的边框之外绘制任何东西,如果您还将缩放模式设置为“Aspect Fill”或“Scale To Fill”,图像将始终填满包含视图的整个边界.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...