如何让我的应用程序显示另一个横向左侧和横向右侧的屏幕,iPhone X iOS

时间:2017-12-30 17:27:29

标签: ios swift xcode

我想这是一个更基本的问题。我被困在这个应用程序我正在为iPhone X编码。我设置它在Main.storyboard文件上显示很多按钮。一切看起来我想看,但问题是我不知道如何使屏幕改变左侧的景观旋转和右侧的横向旋转。屏幕看起来一样,但我想以不同的方式设置页面样式。

Xcode 9.1 iOS 11 Swift 4.03

3 个答案:

答案 0 :(得分:1)

如果你想要一个实际上不同的横向布局(而不仅仅是自适应布局),你应该使用尺寸类: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/Size-ClassSpecificLayout.html

这将使您能够针对不同的方向制作完全不同的UI。

  

Interface Builder允许您根据当前大小类自定义许多布局功能。然后,布局会随着大小类的变化自动调整。

...

  

当视图的大小类发生更改时(例如,当您在全屏和拆分视图之间旋转iPhone或切换iPad应用程序时),系统会自动向视图层次结构添加项目或从视图层次结构中删除它们。系统还会动画对视图布局的任何更改。

答案 1 :(得分:1)

如果您想要横向右侧和横向左侧的不同布局的唯一原因是避免屏幕顶部的“凹口”和底部的手势区域,那么您真正应该做的就是布置您的视图相对于“安全区”而言,正是出于这个原因。如果您的视图相对于安全区域布局指南进行了布局,那么无论方向如何,它们都会自动调整以自动避开缺口和手势区域。

https://developer.apple.com/documentation/uikit/uiview/positioning_content_relative_to_the_safe_area

答案 2 :(得分:0)

您可以为每个特定方向制作两个xib文件,然后使用 dfd 建议的用户,分别在以下代码中加载xib:

if UIDevice.current.orientation == UIDeviceOrientation.landscapeLeft {
    //Load xib for landscapeLeft
} else if UIDevice.current.orientation == UIDeviceOrientation.landscapeRight
    //Load xib for landscapeRight
{

这将允许您以不同方式设置方向的样式 祝好运,
Arnav


来源:
https://stackoverflow.com/a/38629833/8503080