iOS方向更改,但页面仍然是垂直的

时间:2013-11-29 13:36:06

标签: ios uiviewcontroller uiinterfaceorientation

所以我在设备方向更改时使用以下代码加载UIView,但是当页面加载时,页面上的内容没有以正确的方式布局。有关如何改变这一点的想法吗?

旋转而不在项目设置中左右检查。 Rotated without checking left and right in the project settings.

在项目设置中左右检查旋转。 Rotated with checking left and right in the project settings. - 我实际上倾向于这个,因为至少状态栏位于正确的区域,但是失败的是页面的宽度没有变化,允许我水平构建......

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


- (void)deviceOrientationDidChange{
        UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
        if (orientation == UIDeviceOrientationPortrait){
            NSLog(@"I'm portrait!");

        }
        else if (orientation == UIDeviceOrientationLandscapeLeft) {
            NSLog(@"I'm landscape LEFT!!");

        }
        else if (orientation == UIDeviceOrientationLandscapeRight) {
            NSLog(@"I'm landscape Right!!");

        }
        else {

        }
}

3 个答案:

答案 0 :(得分:1)

您是否在常规设置中选择了所有方向?

enter image description here

答案 1 :(得分:1)

您的代码正确响应设备方向的更改。

问题可能来自于您如何创建视图 最简单的方法是使用storyboard或IB,并设置约束,因此在旋转时,您的视图适合其新界限。

答案 2 :(得分:0)

通过对didGainWindow方法中的页面进行一些更改,能够使用下面的代码解决问题。

- (void)changePagePostionSettings{
    self.w = 568;
    self.h = 320;
    customBackground.w = 568;
    customBackground.h = 320;  
}