按钮在旋转时消失

时间:2015-08-30 22:25:01

标签: ios iphone xcode-storyboard ios-autolayout

我正在重新设计现有项目以允许屏幕旋转和多个设备,但每当我在模拟器中旋转屏幕时,按钮就会消失。从头开始玩具示例有效,但不是活动项目。什么事可能导致这个?一切都在故事板中,并带有自动布局。

2 个答案:

答案 0 :(得分:1)

根据您的问题首先,您必须检查您的应用程序是否使用了大小等级,另一件事请在更改方向时检查约束是否破坏。

这个问题没有违反以下程序的约束。但是如果您可以在下面的图像中看到类似的内容,那么您只需要更改约束。 enter image description here

其次如果没有那么你需要通过选择Main.storyboard或ViewController.xib来使用size类。

然后您需要转到文件检查器并选择使用自动布局下方的使用尺寸等级

使用方向尺寸类的多个设备的应用程序派上用场。

请查看下面的图片。

没有尺寸等级的应用程序

结果UI将如何在设备中显示。 enter image description here

从File Inspector启用size Class。 enter image description here

一旦你做了更改,现在ViewController将能够根据不同方向的设备更改约束。

wAny-hAny 尺寸等级 - 适用于以横向或纵向显示视图的所有设备。在此大小类中添加所有必需的控件。 enter image description here

wCompact-hRegular 尺寸等级 - 仅限纵向模式下的所有iPhone 。如果您在此大小类中添加了任何控件,则当应用程序处于横向模式时也不会显示,也不会在iPad中显示。 enter image description here

wAny-hCompact 尺寸等级 - 仅限横向模式下的所有iPhone 。如果您在此大小类中添加了任何控件,则当应用程序处于纵向模式时也不会显示,也不会在iPad中显示。 enter image description here

在设备或模拟器中显示时的最终结果。其中label仅以纵向模式显示,在横向模式下不可见。 enter image description here

结论。要在横向模式下显示标签,您需要在 wAny-hAny 尺寸类中添加标签,然后更改纵向和横向模式的约束。 对于iPad,您可以使用 wRegular-hRegular

希望它可以帮助您解决问题。

答案 1 :(得分:0)

屏幕旋转时,您的布局限制可能会将按钮从屏幕上移开。例如,如果您的按钮设置为距离上边距400点,并且您旋转高度为320的屏幕,则您的按钮可能位于屏幕外y坐标中的400个点。

尝试使用iOS模拟器的Debug View Hierarchy工具。用它来检查按钮是否在屏幕外。如果是这样,您将必须编辑布局约束。 Debug View Hierarchy