Ios Xcode 6 UIImageView无法正确缩放

Ios Xcode 6 UIImageView无法正确缩放,ios,iphone,xcode,ipad,xcode6,Ios,Iphone,Xcode,Ipad,Xcode6,请参阅下面的花朵设置屏幕截图。花卉图像已从资产目录中正确加载,当应用程序在各种模拟器上运行时,将为每个设备分配正确的像素分辨率。我的问题是如何使花卉图像的大小相等,以适应每个设备相同?? 我已经学会了如何使用约束和帧将图像定位到不同的位置,但图像从未正确缩放-请参见第一张图片 下图是我希望能够在每个设备上正确缩放的花卉图像的模型 真正的问题是你的目标没有很好的定义。关于什么?屏幕有高度和宽度。您不能同时对两者进行缩放,因为这会扭曲图像,因为不同的设备具有不同的整体纵横比。因此,您必须选择一个要

请参阅下面的花朵设置屏幕截图。花卉图像已从资产目录中正确加载,当应用程序在各种模拟器上运行时,将为每个设备分配正确的像素分辨率。我的问题是如何使花卉图像的大小相等,以适应每个设备相同?? 我已经学会了如何使用约束和帧将图像定位到不同的位置,但图像从未正确缩放-请参见第一张图片

下图是我希望能够在每个设备上正确缩放的花卉图像的模型


真正的问题是你的目标没有很好的定义。关于什么?屏幕有高度和宽度。您不能同时对两者进行缩放,因为这会扭曲图像,因为不同的设备具有不同的整体纵横比。因此,您必须选择一个要缩放到的维度

从你们的模型来看,我猜你们想要的是相对于高度的比例。如果是,则为图像视图指定一个高度约束,该约束是其superview高度的固定分数。在你的模型中,它看起来大约是0.25,但你必须注意你认为好的分数

现在,如果图像视图的内容模式为纵横比匹配或纵横比填充,则图像将随图像视图改变其高度,而不会扭曲纵横比


但是,最好是将此处的其他维度,即图像视图的宽度设置为高度的固定部分,例如,使图像视图的纵横比与图像的纵横比相同。原因是,否则,图像可能最终会在图像视图中居中,这样它就不会再接触顶部或左侧,即使图像视图本身也不会。从您的模型判断,看起来您希望图像填充一半宽度,并保持其方形纵横比以确定其高度。一种方法是使用AutoLayout创建左UIImageView和右占位符空白视图。将左视图固定到父视图的左边缘,将右视图固定到右边缘,然后将它们之间的间距设置为0像素。然后对它们设置相等宽度约束。最后,控件将图像视图拖动到自身,您可以选择纵横比-并且假设在IB中,宽度和高度相同,它将保持正方形。添加等高约束将为另一个视图提供所需的等高,以备需要


这将为您提供一个50%的左图像视图,当您的模式设置为Aspect Fit或Aspect Fill时,它将在您的实体模型中为您提供结果。如果图像不是正方形,请确保检查UIImageView的剪辑子视图,以防止显示溢出

谢谢Kleezy。您的示例很有效,但对我来说,将视图作为空格持有者似乎有点笨拙。我目前在appStore上有一个应用程序,它有4个图像,在所有设备上都可以正确缩放。使用多个故事板很容易。由于现在只有一个情节提要,似乎用代码以编程的方式完成所有工作都会更容易。我真的缺少多个情节提要,有了自动布局,您需要一些东西来填充空间。我假设你的视图不仅仅是那张图片,所以也许“占位符”最终并不是一个真正的占位符。顺便说一句-此处实际上建议使用间隔棒视图:
CGFloat screen_width = [[UIScreen mainScreen] bounds].size.width;
your_imageview.frame = CGRectMake(0, 0, screen_width/2, screen_width/2);