横向模式下的按钮位于屏幕下方

时间:2015-08-01 13:43:49

标签: ios iphone xcode swift

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

所以我将这些UIcomponents垂直排列,并使用'重置建议约束'并使所有buttons等宽和相等的高度,并且在potrait模式enter image description here中一切都很好但是一旦我进入横向模式enter image description here,最后两个按钮就会消失,如果我从底部边缘添加一个约束,整个UI就会混乱,即只有一个标签和一个上部按钮的一部分出现。

如何在potrait和横向模式下显示所有UI组件?

2 个答案:

答案 0 :(得分:3)

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

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

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

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

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

正在运行的应用程序如下所示:enter image description here

enter image description here

答案 1 :(得分:1)

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

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

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

  1. 实现两个视图控制器对象。一个只呈现肖像 界面,另一个用于呈现仅景观界面。

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

  3. 有关此内容的更多信息,请查看此Apple开发者页面并向下滚动到“创建备用横向界面”。

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