所以我创建了我的webapplication,当我在xcode中构建它时,我必须在“Simulated Metrics”>下因为我有iPhone 4s,“尺寸”设置为3.5英寸。 当我构建它并在iPhone上运行时,一切看起来都很完美,但我希望这个应用程序也可以在iPhone 5/6上运行,但是当我在模拟指标中将其大小更改为其他内容时,它在我的iPhone上变得非常混乱。我正在使用我的响应式网站的webview,它不应该真正关心屏幕大小,但我相信Xcode的确如此。那么,有没有一个解决方案,xcode自动检测屏幕大小,并使webview采取整个viewcontroller?或者我是否必须为每个屏幕大小创建一个应用程序?
答案 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
很快,这些是用于设置约束的工具:
在您的情况下,假设您只有一个大视图(webview
),则需要设置4个约束,指出webview
的左,右,上,下双方分别距离父母的左,右,上和下边界0
像素:
webview
放在绘图区域的中间
查看对话框的上半部分:中间的小方块代表您刚刚点击的视图,四条红线代表父母一侧的距离。将它们全部设置为0
并单击"添加4个约束"。 (注意:未选中时,线条最初为虚线;激活后,它们会变为实线。)
现在绘图区域中的框架并不代表您的期望:您的webview
仍处于最初放置的中间位置,并未填满所有可用空间; XCode知道帧和约束之间存在不匹配,并显示警告。您需要更新框架:点击"问题"按钮和"更新所有帧"。
图像来自SO:这个问题
What is "Constrain to margin" in Storyboard in Xcode 6
阅读它以了解"对边际的约束"开关。