我已经在我的应用程序中创建了几个没有自动布局和大小类的xibs。
当我在实际设备上运行应用程序时,它在iPhone6上运行得很好,但在iPhone6 Plus上,视图只显示在屏幕的一侧。
所有xibs上的元素都设置为使用自动调整大小,如下所示:
添加关于如何构建我的xibs的信息:自动调整大小已设置为如下所示:当在iOS < 7.0的iPhone上使用app时,视图上的所有对象都停留在相同的位置,其中背景图像(覆盖整个视图)位于状态栏下方;在IOS7及更高版本中,背景图像在状态栏下可见。这是在应用程序中的所有视图上完成的。
问题是无论我怎么尝试,包括自动布局和大小类到xib都搞乱了一切。有没有什么简单的方法可以将我的视图转换为使用自动布局,这样相同的视图(设计用于iPhone5分辨率| iPhone 4英寸)可以被更改,使它们在iPhone6 +分辨率下看起来相同?如果自动调整大小保持其设置的方式,那就太好了。
我试过使用几种技术和建议的约束,但图像有时只增加高度(不保持纵横比),背景图像粘在屏幕的一侧,标签大小不会增加。iPhone6和6 Plus分辨率的资源也已添加到项目中。
发布于 2015-04-23 06:03:40
这是我在需要处理同样的问题时发现的:
1)如果不想使用自动布局,可以使用缩放模式。苹果在iOS8上添加了这个聪明的小技巧,让所有以前的iPhone 5应用程序都可以在iPhone 6上运行,而无需对iPhone 6进行任何修改。要使用它,你不能在项目属性上设置带有iPhone 6分辨率的启动图像(但你需要为iPhone 5设置一个图像,这样它就可以知道你支持iPhone 5,而你必须将启动屏幕文件留空)。这样,当在iPhone 6/6+上运行你的应用程序时,iOS将使用缩放模式,并且你的所有视图都将被正确缩放,以与其屏幕完美地协同工作。这是可能的,因为新的屏幕保持了与iPhone 5屏幕的纵横比,所以iOS基本上只需要将你的位置/尺寸乘以正确的屏幕尺寸比例。但是,如果您将iPhone 6的特定分辨率图像设置为某些XIB,我不确定这是否仍然有效。
这个解决方案基本上意味着你选择忽略iPhone 6的存在,而继续为旧设备编程。
2)如果你真的想放弃自动缩放模式,为iPhone 6制作一个更新的应用程序(苹果公司希望你这么做),你可以做到这两种方式中的任何一种:
我现在使用第一个建议(缩放模式),而我在iOS6和7上运行的自动布局的问题还没有得到解决。
发布于 2015-04-23 06:43:01
我认为您使用自动调整蒙版大小的方式是正确的。也许在其中做一些调整可以解决你的问题。
您附加的图片是对象的自动调整大小属性,并预览了此设置的行为。
像你一样设置自动调整大小的蒙版,将固定你的对象相对于它的superview的距离,但由于你没有灵活地设置宽度(框内未选中的箭头),系统将不得不在将对象定位在容器的左侧或右侧之间进行选择以解决冲突,并且您的对象可能位于左侧(默认行为...您可以在自动调整蒙版大小的预览小窗口中确认这一点)。
尝试将宽度设置为灵活,并确保superview的设置也配置为可缩放(灵活的宽度和灵活的高度)。
我正在开发一个从iOS4开始的项目,支持iPhone和iPad,每个屏幕只使用一个xib,只需使用自动调整蒙版属性设置视图比例行为,所以我非常确定你也可以做到。
如果您有相同的布局,请不要使用2个xibs。在大多数情况下,这是一种非常糟糕的做法,您将在稍后尝试更新布局、添加按钮或其他任何东西时强调这一点。
https://stackoverflow.com/questions/28006896
复制