如何通过Storyboard为横向和纵向方向使用不同的布局

时间:2014-07-18 09:34:55

标签: ios iphone objective-c layout xcode-storyboard

我尝试根据屏幕方向制作不同尺寸和位置的元素。旋转设备时,部分元素必须改变其位置。我知道它是如何通过layoutSubview方法实现的,但我想知道它是如何通过Storyboard实现的。

下图所示的不同方向的显示元素示例: enter link description here

2 个答案:

答案 0 :(得分:1)

这将取决于您的用户界面。有时您可以使用Autolayout并根据您的喜好调整屏幕,在其他情况下(菜单完全从横向更改为纵向),您必须找到解决方法。大多数时候我使用第二个选项:我在故事板中有几个屏幕,我处理自动布局从纵向更改为横向,反之亦然,但其他时候,使用自动布局非常困难和挑战所以我使用单独的xib文件并且我处理UIViewController旋转事件以更新用户界面。

答案 1 :(得分:0)

可以通过编码执行设备方向。我只是告诉你一个方法。

//This method will perform supported orientations which you wanna show.
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft;
}

您还可以设置默认方向(例如在游戏中我们用户横向方向)。

 // The default device orientation is set LandscapeRight
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
    {
        return UIInterfaceOrientationLandscapeRight;
    }

通过这种方式,您可以更改设备方向。有关详细信息,您可以关注Apple文档。 https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/RespondingtoDeviceOrientationChanges/RespondingtoDeviceOrientationChanges.html#//apple_ref/doc