以编程方式更改方向上的界面

时间:2014-03-09 17:31:20

标签: ios iphone objective-c screen-orientation

在我的iOS应用程序中,通过以编程方式将多个UIView添加到当前屏幕上的UIViewController来创建界面。目前该应用程序在纵向方向工作,但我想添加在横向工作的能力。当应用程序处于横向方向时,我想更改界面。锄头,我可以这样做吗?

P.S。我无法使用界面构建器

1 个答案:

答案 0 :(得分:0)

您需要通过NSNotificationCenter监视要更改的方向,然后处理它。

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(orientationChanged:)
                                                 name:UIDeviceOrientationDidChangeNotification
                                               object:nil];

然后创建处理旋转的方法

- (void)orientationChanged:(NSNotification *)notification
{
    // Get device orientation
    UIDeviceOrientation deviceOrientation   = [UIDevice currentDevice].orientation;

    if (UIDeviceOrientationIsPortrait(deviceOrientation))
    {
        // Portrait
    }
    else if(UIDeviceOrientationIsLandscape(deviceOrientation))
    {
        // Landscape
    }
}