【问题标题】:UIWebView not autoresizing to fit screenUIWebView 不自动调整大小以适应屏幕
【发布时间】:2011-05-08 19:04:24
【问题描述】:

我有一个应用程序,它使用 UIViewController 在 UIWebView 中显示文章,其中一些有图像。我已经设置好了,当点击图片时它会调用

- (void)displayImage:(NSInteger)i {
ImageViewController * imageVC = [[ImageViewController alloc] initWithImageId:i];
[self.navigationController pushViewController:imageVC animated:YES];
[imageVC release];

}

这会加载另一个 UIViewController。 我所有的观点都对旋转反应很好。 ImageViewController 维护图像的比例,而我的 ArticleViewController 用文本填充屏幕。但是,每当我在查看 ImageViewController 并按下后退按钮时将屏幕旋转到横向模式。之前的 UIViewController 自动调整大小不正确,增加了文本的字体大小,而不是在一行上放置更多的单词。

编辑:

这是一个文章视图控制器:

这是点击图片时出现的 ImageViewController:

现在如果我们在这里改变方向...

然后点击返回按钮,文章内容被不恰当地调整大小以适应窗口。

这可以通过转动 iPhone 两次来纠正。这就是文章横向显示的样子。

这个问题与 UIWebView 在当前不可见时没有适当地自动调整大小有关。我该怎么做才能解决这个问题?

【问题讨论】:

  • 您找到解决方案了吗?

标签: iphone objective-c uiviewcontroller autoresize


【解决方案1】:

您需要在界面生成器中执行此操作

点击你的 UIWebView 并按下 Apple-3 来调出“Size Inspector”。

在“自动调整大小”下,确保选中框内部的两个箭头。这将确保视图大小始终对其容器最大化。

【讨论】:

  • 我已经这样做了,除了我在原始问题中解释的情况外,它运行良好。还有什么建议吗?
【解决方案2】:

您可以通过根据设备方向添加不同的 css 样式在服务器端更改它: 例如:

/* Landscape */
@media screen and (min-width: 321px)
{   
   body{
     width: 320px;
   }    
}
/* Landscape */
@media screen and (min-width: 321px)
{ 
   body{
     width: 480px;
   }    
}

或者您可以从客户端更改视口: 如果您的页面有视口元标记:

<meta name="viewport" id="view" content="width=320px, minimum-scale=1.0, maximum-scale=1.0">

然后在您的代码中,您可以在每次方向更改时更改此视口:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if(interfaceOrientation == UIDeviceOrientationLandscapeLeft)      
 [uiwebview stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementById(\"view\").setAttribute('content', 'width=480');"]];
}
....

当方向为纵向时再次更改

【讨论】:

  • 您的解决方案的视口部分就像一个魅力。谢谢!
【解决方案3】:

供日后参考。您可以使用此程序以编程方式执行此操作。

[webView setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];

【讨论】:

    猜你喜欢
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2011-02-03
    • 1970-01-01
    相关资源
    最近更新 更多