【问题标题】:Buttons going below screen in landscape mode横向模式下按钮在屏幕下方
【发布时间】:2015-08-01 22:56:48
【问题描述】:

我正在学习 iphone 应用程序开发,我正在使用 swift。我学习了 lynda 教程,并创建了一个非常基本的 UI,即 View Controller > View。 在视图中,我添加了一个分段控件,两个按钮(水平,彼此面对),三个labels,一个文本区域和另外两个buttons(水平,彼此面对)。

所以我让这些UIcomponents 垂直排列,我使用“重置为建议的约束”并让所有buttons 等宽和等高,在肖像模式下一切都很好 但只要我去横向模式 最后两个按钮消失了,如果我从底部边缘添加约束,整个 UI 就会变得混乱,即只出现一个标签和上部按钮的一部分。

我应该怎么做才能使所有 UI 组件在纵向和横向模式下都可见?

【问题讨论】:

    标签: ios iphone xcode swift


    【解决方案1】:

    有很多方法可以解决这个问题。我已经设置了一个github project 来向您展示实现它的一种方法。

    在没有Interface Builder 帮助的情况下我手动完成的简短简历:

    • 我已将分段控件固定在父视图的左侧、顶部和右侧
    • 下面的红色按钮分段控件有一个垂直约束,对父视图有一个前导约束。它也是对绿色按钮的水平空间限制
    • 绿色按钮对父视图有一个尾随约束,顶部与红色按钮对齐,宽度设置为等于红色按钮.

    此设置确保分段控件负责指定到父视图顶部的距离,红色按钮指定自身和绿色按钮的宽度(通过更改水平空间约束的值来测试它)

    我已经颠倒了同样的原则。所以底部的视图总是固定在底部。但正如我所说,有很多方法可以实现这一目标。您还可以为顶部、中心和底部的元素创建 3 个容器视图,并将它们固定到顶部、中心和底部。

    正在运行的应用如下所示:

    【讨论】:

    • 您的项目在 ipad 中,如果我在 ipad 中运行我的项目,我会得到正确的布局。问题出在iphone上,在每部iphone中我都有不同的布局问题,这令人沮丧。我正在尝试调试。感谢您的帮助!
    • 不客气。如果布局不合适,因为它太大,你可以考虑使用UIScrollView
    • 我的回答(和 github 项目)向您展示了如何将视图固定到视图的底部/顶部/中心。如果对您有帮助,请将我的回答标记为已接受。
    • 不幸的是,过去两天我一直在尝试您的建议,它修复了一个 iPhone 型号的 UI,但另一个型号的 UI 完全搞砸了。
    【解决方案2】:

    如果您希望在横向模式下以不同的方式显示您的内容,则可以(并且很可能更可取)创建一个备用横向界面。

    引用 Apple 开发者关于该主题的页面:

    “要支持备用横向界面,您必须执行以下操作:

    1. 实现两个视图控制器对象。一个只展示肖像 界面,另一个展示一个仅横向的界面。

    2. 注册 UIDeviceOrientationDidChangeNotification 通知。 在您的处理程序方法中,根据当前设备方向显示或关闭备用视图控制器。"

    有关这方面的更多信息,请查看此苹果开发者页面并向下滚动到“创建备用横向界面”。

    https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/RespondingtoDeviceOrientationChanges/RespondingtoDeviceOrientationChanges.html

    【讨论】:

    • 谢谢,我阅读了指南。现在我正在尝试了解如何进行布局,我不想为不同的模式创建不同的布局。但该指南绝对是有帮助和有用的。
    猜你喜欢
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多