0

我一直无法在任何地方找到解决此问题的方法。我正在使用 Xcode 4.5 使用情节提要编写 iOS 6 应用程序。它使用导航控制器在带有导航栏的多个视图控制器之间跳转,包括一些使用 UIWebView 显示网站的视图控制器。我已经向 AppDelegate 和各种 ViewController 文件添加了代码,以将应用程序中大多数场景的视图限制为纵向(因为否则它们看起来确实不太好),但允许网站的横向视图。Info.plist 配置为允许所有 4 个方向。

在 UIWebView 场景中一切正常;包括旋转,滚动和缩放 - 除了一件事:当我从纵向旋转到横向时,网站的水平尺寸保持锁定在纵向视图的水平尺寸 - 导致网站右侧有很大的空白区域场景(见下图)。我通过在 Attributes Inspector 中的 View Controller 下选择 Layout: Wants Full Screen 在 UIWebView 顶部修复了一个小的 (1/4") 空白区域。但我无法解决这个问题。

如有必要,我可以提供相关代码或 Storyboard 设置。任何人都可以帮忙吗?谢谢你。

纵向视图

风景

4

1 回答 1

0

当应用程序在 viewDidLoad 方法上加载时,我解决了添加此代码的问题:

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

然后将其添加到您的视图控制器:

- (void) orientationChanged:(NSNotification *)note
{
    UIDevice * device = note.object;
    switch(device.orientation)
    {
        case UIDeviceOrientationPortrait:
            _displayWeb.frame = CGRectMake (0, 0, 768, 1024);
            break;

        case UIDeviceOrientationPortraitUpsideDown:
            _displayWeb.frame = CGRectMake (0, 0, 768, 1024);
            break;
        case UIDeviceOrientationLandscapeLeft:
                _displayWeb.frame = CGRectMake (0, 0, 1024, 768);
            break;
        case UIDeviceOrientationLandscapeRight:
            _displayWeb.frame = CGRectMake (0, 0, 1024, 768);
            break;
        default:
            break;
    };
}

_displayWeb 是您的 IBOutlet UIWebView,顺便说一下,这是使用 Xcode 4.6.1

于 2013-04-05T06:51:58.993 回答