Xcode 6我是否必须为每个屏幕尺寸制作一个应用程序?

时间:2015-05-06 14:46:35

标签: ios xcode webview size metrics

所以我创建了我的webapplication,当我在xcode中构建它时,我必须在“Simulated Metrics”>下因为我有iPhone 4s,“尺寸”设置为3.5英寸。 当我构建它并在iPhone上运行时,一切看起来都很完美,但我希望这个应用程序也可以在iPhone 5/6上运行,但是当我在模拟指标中将其大小更改为其他内容时,它在我的iPhone上变得非常混乱。我正在使用我的响应式网站的webview,它不应该真正关心屏幕大小,但我相信Xcode的确如此。那么,有没有一个解决方案,xcode自动检测屏幕大小,并使webview采取整个viewcontroller?或者我是否必须为每个屏幕大小创建一个应用程序?

2 个答案:

答案 0 :(得分:0)

  

那么,是否存在xcode自动检测屏幕大小的解决方案   并使webview采用整个viewcontroller?

是的 - xcode提供了执行此操作的方法。通过自动布局或使用弹簧和支柱。使用自动布局,您将定义UI将遵循的一组规则。如果您想为所有设备提供1个布局,那么它非常简单,任何教程都可以帮助您入门。使用弹簧和支柱,您可以根据屏幕的增长情况告诉您的视图应该如何增长/保持。请查看此内容,快速了解自动布局:http://www.raywenderlich.com/83129/beginning-auto-layout-tutorial-swift-part-1

  

或者我是否必须为每个屏幕尺寸创建一个应用程序?

没有..但你可以在自动布局中设置不同的约束,使你的视图在不同的大小上表现得非常不同。这会变得有点棘手......

答案 1 :(得分:0)

不,你没有为每个可能的屏幕尺寸制作新的应用程序,而是使用XCode"自动布局"有一套"约束"控制小部件的大小和位置。约束可以是小部件的固定大小或相对于另一小部件(或父级边界)的给定距离。它不一定是一个固定的距离,它也可以是"我的小部件需要与其他小部件相距不到10个像素"。

"模拟指标"在布局GUI时,您在绘图区域底部只是一个视觉帮助,它在运行时没有任何影响。你可以放心地坚持使用" Any"宽度和高度。

阅读本教程以了解XCode的自动布局和约束:
http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1

很快,这些是用于设置约束的工具:

XCode's constraints tools

在您的情况下,假设您只有一个大视图(webview),则需要设置4个约束,指出webview的左,右,上,下双方分别距离父母的左,右,上和下边界0像素:

  1. webview放在绘图区域的中间
  2. 点击它
  3. 点击" pin"按钮;你会看到这个观点:
  4. XCode's pin constraints view

    1. 查看对话框的上半部分:中间的小方块代表您刚刚点击的视图,四条红线代表父母一侧的距离。将它们全部设置为0并单击"添加4个约束"。 (注意:未选中时,线条最初为虚线;激活后,它们会变为实线。)

    2. 现在绘图区域中的框架并不代表您的期望:您的webview仍处于最初放置的中间位置,并未填满所有可用空间; XCode知道帧和约束之间存在不匹配,并显示警告。您需要更新框架:点击"问题"按钮和"更新所有帧"。

    3. 图像来自SO:这个问题 What is "Constrain to margin" in Storyboard in Xcode 6
      阅读它以了解"对边际的约束"开关。