繁体   English   中英

Xcode 6 UIImageView无法正确缩放

[英]Xcode 6 UIImageView will not scale correctly

请在下面查看鲜花设置的屏幕截图。 花卉图片已从资产目录中正确加载,并且在各种模拟器上运行该应用程序时,已为每个设备分配了正确的像素分辨率。 我的问题是如何使花朵图像在每个设备上都可以缩放(相等大小以适合)? 我已经学习了如何使用约束和框架将图像定位到不同的位置,但是图像无法正确缩放-请参阅第一个图片 在此处输入图片说明

下图是我想做的事的模拟照片(在每台设备上正确缩放的花朵图像)

在此处输入图片说明

从样机来看,您似乎希望图像填充一半的宽度,并保持其正方形纵横比来确定其高度。 解决此问题的一种方法是使用AutoLayout创建左UIImageView和右占位符(空白)视图。 将左视图固定到父对象的左边缘,将右视图固定到右边缘,然后将它们彼此设置为0像素。 然后对其设置相等的宽度约束。 最后,控件将图像视图拖到其自身,然后可以选择宽高比-并假设在IB中,宽度和高度相同,它将保持正方形。 添加相等的高度约束将为另一个视图提供相等的高度,以备您需要。

在此处输入图片说明

在此处输入图片说明占位符视图约束

这将为您提供50%的左图像视图,并且您的模式设置为Aspect Fit或Aspect Fill,它应该为您的模型提供结果。 如果您的图像不是正方形,请确保检查UIImageView的Clip Subviews以防止显示溢出。

真正的问题是您的目标定义不明确。 关于什么规模? 屏幕具有高度和宽度。 您无法同时缩放两者,因为这会使图像变形(因为不同的设备具有不同的总体纵横比)。 因此,您必须选择一个要缩放的尺寸。

从您的模型判断,我将猜测您想要的是相对于height进行缩放。 如果是这样,则给图像视图一个高度限制,该限制是其超级视图高度的固定分数。 在您的模型中看起来大约0.25 ,但您将不得不认真对待您认为是好的部分。

现在,如果图像视图的内容模式是“宽高比适合”(或“长宽比填充”),则图像将随图像视图一起更改其高度,而不会扭曲宽高比。

但是,最好将图像视图的其他尺寸(此处为宽度)设置为高度的固定比例,例如使图像视图的长宽比与图像的长宽比相同。 原因是,否则图像可能最终以这样的方式最终居中放置在图像视图中:即使图像视图本身也不会碰到顶部或不再离开。

CGFloat screen_width = [[UIScreen mainScreen] bounds].size.width;
your_imageview.frame = CGRectMake(0, 0, screen_width/2, screen_width/2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM