【问题标题】:UIWebView keeps Portrait dimensions when viewed in LandscapeUIWebView 在横向查看时保持纵向尺寸
【发布时间】:2012-12-28 21:01:25
【问题描述】:

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

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

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

【问题讨论】:

  • 另外,在横向模式下,当我向上和向下滚动时,网页的滚动条会出现并在网页和空白之间移动。而且,空白本身会上下滚动(使用它自己的滚动条),在空白上方显示一个小的灰色区域,在空白下方显示一个较大的黑色区域。好像屏幕上有两个单独定义的区域。这告诉我某些东西将横向网站的水平尺寸限制为与纵向相同的尺寸。我已尝试更改尺寸检查器中的 Autosizing struts & springs 和其他设置,但没有任何效果。
  • 而且,根据我描述的行为,有人建议我在这里有两个 webview,一个在 Interface Builder 中创建,一个在代码中。你认为这可能有什么问题吗?

标签: uiwebview storyboard xcode4.5 landscape dimensions


【解决方案1】:

当应用程序加载到 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-28
    • 2012-02-24
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2015-11-11
    相关资源
    最近更新 更多