2015-08-30 188 views
2

我正在修改现有的项目以允许屏幕旋转和多个设备,但每当我在模拟器中旋转屏幕时,按钮消失。一个从头开始的玩具示例工程,但不是活动的项目。什么事情可能导致这个?所有东西都在自动布局的Storyboard中。旋转按钮消失

回答

1

根据您的问题,首先您必须检查您的应用程序是否正在使用尺寸等级,另外还有其他的事情,请在改变方向时检查约束是否突破。

这是不违反约束的问题,下面的程序。但是如果按照下图可以看到类似的情况,那么你只需要改变约束。 enter image description here

其次,如果不是,那么您需要通过选择Main.storyboard或ViewController.xib来使用size类。

然后,你需要去检查的文件,并选择使用尺寸级别下面使用自动布局

为了使得具有定向尺寸的多个设备的应用程序派上用场。

请看下面的图片。

没有大小类应用

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

从文件检查器启用大小类。 enter image description here

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

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

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

温妮 - hCompact尺寸级别 - 对于在风景模式下所有iPhone。如果你在这个尺寸的类中添加了任何控件,当应用程序处于纵向模式时,也不会在iPad中显示。 enter image description here

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

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

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

+0

这解决了我的问题。我的问题是我选择了尺寸班,但并不真正了解如何进行自适应布局。按照我的预期,取消选择课程大小会使自动布局工作顺利进行。我将在下一个项目中使用课堂大小! – drw

0

当您的屏幕旋转时,您的布局约束可能会将您的按钮从屏幕上推开。例如,如果您的按钮设置为距离顶部边距400点,并且您旋转了高度为320的屏幕,那么您的按钮可能会坐在距离屏幕不远的y坐标中的400个点。

尝试使用iOS模拟器的调试视图层次结构工具。用它来检查按钮是否离开屏幕。如果是这样,你将不得不编辑你的布局约束。 Debug View Hierarchy

+0

我试过,但无济于事。尽管这是一个非常好的提示,它是一个非常有用的工具。当我发现我做错了什么时会更新。 – drw

+0

最重要的是,非常感谢您的详细解释! – drw