OStack程序员社区-中国程序员成长平台

标题: ios - 在 ib 中布局应用程序时的格式与在模拟器中不同 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 11:49
标题: ios - 在 ib 中布局应用程序时的格式与在模拟器中不同

我刚刚学习如何制作应用程序,我注意到的第一件事是当我在界面构建器中以图形方式布置我的应用程序时,在模拟器或我自己的设备上运行它时并不相同。我有两张正在发生的事情的屏幕截图..

In Interface builder

On the simulator

注意段和开关之间的空间......它们是不同的,当我想向上移动开关时会导致问题......

我该如何解决这个问题?看起来可能与新款 iphone 的更大屏幕尺寸有关,而这不是我的模拟器中运行的东西......如果是这样,在设计在两部手机上看起来都不错的应用程序时,我应该知道哪些事情?



Best Answer-推荐答案


我认为您诊断的问题是 Interface Builder 向您显示 4"屏幕,但您的模拟器向您显示 3.5"屏幕。在 Interface Builder 中,您可以单击主面板右下角的以下按钮在 4"和 3.5"显示之间切换:

toggle iphone screen size

您也可以在模拟器中,从“硬件”菜单中选择您的“设备”为 3.5 英寸屏幕或 4 英寸屏幕,这样您就可以模拟在两种尺寸的应用屏幕上运行您的应用。顺便说一句,当你进入“视网膜”模拟器时,它会在屏幕上显示两倍大(因为屏幕的分辨率是原来的两倍)。但是您可以通过使用模拟器“窗口”菜单上的“缩放”选项来控制模拟器窗口的大小。这只会改变模拟器在 Mac 屏幕上再现模拟设备的大小。但如果您在较小的 Mac 屏幕上工作,有时您会发现这个“缩放”选项也很有用。

但您确实想确保您的应用运行良好,无论屏幕大小如何,因此您确实应该针对两种尺寸测试应用。您希望您的应用程序在 iPhone 4 设备和 iPhone 5 设备上都能很好地呈现。幸运的是,您可以通过一个 Storyboard来实现这一点。

就控制在两种尺寸屏幕上的布局而言,这取决于您是否使用自动布局。您可以通过单击最右侧面板的第一个选项卡并选中或取消选中“使用自动布局”复选框来控制它:

autolayout

如果不使用自动布局(例如,如果您的应用要在 iOS 5 上运行,这很重要),您可以转到自动调整大小的 mask 选项卡并控制决定布局的“ Spring 和支柱”。例如,如果您单击场景中的某个控件,则可以通过查看“尺寸检查器”选项卡来控制边距是否应随尺寸变化而变化,或者布局是否应变化:

strings and struts

如果您将鼠标悬停在该“示例”窗口上,它将动画化大小将如何随着其父 View 的大小而变化(例如,iPhone 是 3.5 英寸屏幕还是 4 英寸屏幕)。

另一方面,如果您使用自动布局(仅适用于运行 iOS 6 及更高版本的设备),屏幕上的布局由您为 View 定义的“约束”决定(参见后者下图的一半):

auto layout

关于ios - 在 ib 中布局应用程序时的格式与在模拟器中不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17099419/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4