我无法让我的应用程序在 iphone 5 上看起来不错,甚至无法合理展示,这真是一团糟。我不知道从哪里开始。滚动视图位于随机位置,应用底部有一个灰色条。我试图通过在情节提要中移动东西来使其工作,但这会破坏旧屏幕。我也打开了自动布局,但是该应用程序在 ios5 上无法运行。任何帮助将不胜感激。干杯
2 回答
一般来说,如果您的弹簧和支柱(或弹簧UIAutoresizingMask
)设置正确,那么为 iPhone 5 启动应该不会有太多额外的工作。此外,如果您使用诸如 之类的代码行[someView setFrame:CGRectMake(hardCodedX, hardCodedY, hardCodedWidth, hardCodedHeight)];
,那么您只是在为失败做好准备。您需要重构此代码以使用相对于设备(或 superView)屏幕尺寸的位置。对于无法使用弹簧和支柱完成的复杂子视图布局,您可以layoutSubviews
在那里覆盖并进行复杂的设置。
如您所说,如果您支持 iOS 5,则不能选择自动布局。
您可以在 Storyboard 中找到弹簧/支柱。我在这里用红色勾勒出来:
如果您将鼠标悬停在带有各种工字梁的框上,您可以模拟所选视图将如何调整大小(您将看到框右侧的图像随着它的增长和缩小而动画)。
为每个单独的视图设置了弹簧和支柱。这些可以使用自动调整大小的蒙版以编程方式设置。对于盒子两侧的 4 根工字梁,实线基本上表示“将视图锚定在此位置”。对于中间的两个垂直条,实线表示“视图在这个方向上是灵活的”(无论是宽度还是高度)。
弹簧和支柱都是相对于视图的超级视图。
例如,如果您希望您的视图锚定到其父视图的顶部,但随着其父视图的增长而增加其高度(例如,如果屏幕比 iPhone 5 更高,视图控制器的主视图会增长),您会希望顶部的工字梁是实线(将我锚定到顶部),并且盒子内的垂直线是实线(让我的高度与我的超级视图一起增长)。现在,当您将鼠标悬停在该框上时,您会看到右侧的图像已固定其顶部,但在垂直方向上会增大和缩小。
一般来说,让您的应用程序在新的 iPhone 5 屏幕上呈现出来是很容易的。即使没有一点代码,也可以在使用情节提要时通过几个简单的步骤来完成。
- 不要紧张
- 如果您想保持向后兼容性(iOS 5 及更低版本),请确保在文件检查器中禁用自动布局:
- 在您的uiviewcontroller / storyboard 中选择一个需要为 iPhone 5 屏幕调整大小的项目。然后选择尺寸检查器:
- 请注意标题为“Autosizing”的带有红线的白框(我相信这些是jrnstone 所指的弹簧/支柱)。
- 点击外框的红线会告诉iOS在屏幕大小不同或方向改变时如何对齐对象。内框将告诉 iOS 如何调整对象的大小。示例框显示该对象的大小。
- Xcode 还允许您通过单击 Storyboard Editor 右下角的 Form Factor 按钮来预览您的应用程序在不同屏幕尺寸上的外观: