Iphone 是否可以在interface builder中为可旋转bg图像设置自动缩放?

Iphone 是否可以在interface builder中为可旋转bg图像设置自动缩放?,iphone,objective-c,image,rotation,Iphone,Objective C,Image,Rotation,我正在用IB设计带有大量图像的UI,默认的设计方向是横向。但是,我需要缩小整个视图以适应纵向模式,方法是缩小到允许的最大宽度,并保持视图与内部图像的纵横比相同。想象我想要达到的目标的最好方法是想象一些风景照片。当您将其旋转为纵向时,它将收缩到最大宽度,垂直居中,但保持相同的纵横比。在我的例子中,我想缩小一个视图及其所有内部子视图 首先,我在viewWillApppear中手动调整图幅的大小到所需的大小,并调用setAutoresizesSubviews来调整其所有内部视图的大小。这些内部视图-图

我正在用IB设计带有大量图像的UI,默认的设计方向是横向。但是,我需要缩小整个视图以适应纵向模式,方法是缩小到允许的最大宽度,并保持视图与内部图像的纵横比相同。想象我想要达到的目标的最好方法是想象一些风景照片。当您将其旋转为纵向时,它将收缩到最大宽度,垂直居中,但保持相同的纵横比。在我的例子中,我想缩小一个视图及其所有内部子视图


首先,我在viewWillApppear中手动调整图幅的大小到所需的大小,并调用setAutoresizesSubviews来调整其所有内部视图的大小。这些内部视图-图像具有“Aspect Fit”和所有自动调整大小选项集(以填充调整大小视图上的可用区域)。但是,内部视图从容器中弹出:一些图像跳到顶部,文本视图扩展到全纵向高度。可以设置某种“视图容器”,然后说“将视图大小调整为X大小,并调整所有视图容器区域的大小,但仅调整内部视图容器区域的大小”

在IB中进行设计时,必须检查以下几项。首先是“视图容器”属性,即包含所有子视图的视图。为了在旋转时正常工作,必须使用正确的IB自动调整属性设置此视图,即正确设置自动调整线(弹簧)和边框线(结构)。在您的情况下,您希望容器与主视图完全匹配,因此在四边启用“structs”,并在内部启用“springs”。使用这些值并查看IB显示的“示例”

然后,必须指示此容器与其子视图一起正常工作。因此,在IB中检查“自动调整子视图大小”和内容模式(如果需要)(=“模式”)是否具有所需的设置。 此时,检查设备或模拟器中的视图是否正确旋转和上升

然后您必须处理这个视图的内容,它是一个UIImageView。这必须居中,因此删除结构,并自动调整大小,因此设置弹簧。然后根据需要将内容模式设置为Aspect Fit或Aspect Fill


这些设置应该有效。对于更复杂的内容,您必须以编程方式进行设置。

为什么不在横向和纵向模式下使用两个单独的图像?因为如果没有纵横比更改,则维护不同的图像是愚蠢的。