【问题标题】:buttons disappear on rotation按钮在旋转时消失
【发布时间】:2015-08-30 22:25:01
【问题描述】:

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

【问题讨论】:

    标签: ios iphone xcode-storyboard ios-autolayout


    【解决方案1】:

    根据您的问题,首先您必须检查您的应用程序是否使用尺寸等级,另一件事请检查在改变方向时约束是否被打破。

    它的问题没有打破约束,请遵循以下程序。但是,如果您可以按照下图看到类似的内容,那么您只需要更改约束即可。

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

    然后你需要进入文件检查器并选择Use Auto Layout下方的Use Size Class

    用于制作具有方向尺寸类的多个设备的应用程序会派上用场。

    请看下面的图片。

    没有尺寸等级的应用

    结果 UI 如何在设备中显示。

    从文件检查器启用大小类。

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

    wAny-hAny 尺寸类 - 让所有设备以横向或纵向显示视图。在此尺寸类别中添加所有必需的控件。

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

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

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

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

    希望它能帮助您解决问题。

    【讨论】:

    • 这解决了我的问题。我的问题是我选择了大小类,但并不真正了解如何进行自适应布局。取消选择班级大小使自动布局按我的预期工作。我将在下一个项目中使用班级规模!
    【解决方案2】:

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

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

    【讨论】:

    • 我已经尝试过了,但无济于事。这是一个很好的提示;这是一个非常有用的工具。当我发现我做错了什么时会更新。
    • 最重要的是,非常感谢您的详细解释!
    猜你喜欢
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    相关资源
    最近更新 更多