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