【问题标题】:UIWebView takes over screen on rotateUIWebView 在旋转时接管屏幕
【发布时间】:2010-12-20 19:57:55
【问题描述】:

我正在使用 UIWebView 和 UIViewController 创建横幅。在控制器中,我将 shouldAutorotateToInterfaceOrientation 设置为始终返回 YES。在 loadView 中,我创建了我的 UIWebView 并使用 CGRectMake 给它一个小的横幅框架。将其添加到屏幕后,一切正常。屏幕旋转时会出现此问题。 UIWebView 现在接管了整个屏幕。如果我使用 NSLog 输出它的帧,我可以看到它被旋转覆盖以占据整个屏幕。知道如何让它停止这样做吗?我觉得我遗漏了一些基本的东西,但我不知道哪里出了问题。

【问题讨论】:

    标签: iphone ipad ios uiwebview rotation


    【解决方案1】:

    如果您加载 UIWebview,在旋转时您应该将 UIWebview 的宽度设置为 480,这将在您加载的页面上声明一个 javascript 函数然后在委托上完成

    - (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
    
    
        if ((toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) || 
            (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight))
        {
                [webView stringByEvaluatingJavaScriptFromString:@"makeWidth(480)"]; 
        }else{
                [webView stringByEvaluatingJavaScriptFromString:@"makeWidth(320)"]; 
        }
    

    注意 makeWidth(480) 是您加载的页面中的一个 javascript 函数,您应该在 webview 中声明该函数并从 xcode 调用它。

    【讨论】:

    • 谢谢!我会尽快尝试测试一下。截止日期迫在眉睫,所以可能需要一点时间:-/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多