1

我在我的项目中使用 UIwebview。webview 中的内容是从 html 数据中填充的通过执行以下代码,如下所示:

[webView loadHTMLString:[NSString stringWithFormat:@"<html><body><font face=\"Arial\" size=\"3\"</font>%@</body></html>",[[[dict_Response objectForKey:@"objects"]objectAtIndex:0]objectForKey:@"detaildescription"]] baseURL:[NSURL URLWithString:@"http://newsletter.nobelbiocare.com/"]];

现在我正在设置 webview 的框架:-

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
 if(appDel.ori_appDel == UIInterfaceOrientationPortraitUpsideDown || appDel.ori_appDel == UIInterfaceOrientationPortrait)
        {
webView.frame=CGRectMake(30,150,710,450);
}else{
webView.frame=CGRectMake(30,150,930,450);
}
return yes;
}

现在发生的事情是在横向模式下,内容以正确的方式显示。但是当我移动到纵向模式时,它会自动显示水平滚动。我不想在水平模式下滚动 webview..请帮助我..如何解决这个问题.

我使用过 sizetofit 和 autoresizing|autofixing。但它也没有解决请帮帮我..

4

4 回答 4

3

@shweta

尝试在 webViewDidFinishLoad 中更新您的 webview:这将对您有所帮助。并尝试在 html 而不是 web 视图框架中设置大小。

- (void)webViewDidFinishLoad:(UIWebView *)webview {
    CGRect oldBounds = [[self webview] bounds];
    //in the document you can use your string ... ans set the height
    CGFloat height = [[webview stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue];
    [webview setBounds:CGRectMake(oldBounds.origin.x, oldBounds.origin.y, oldBounds.size.width, height)];
}

主要关心的是方法。

[webview stringByEvaluatingJavaScriptFromString:@"document.height"] 

通过使用 javascript。

于 2012-06-13T08:56:34.813 回答
2

代替

sizetofitautoresizing|autofixing

webview.scalePageToFit=TRUE

于 2012-06-13T08:53:48.780 回答
1

用这个:

  [webView loadHTMLString:[NSString stringWithFormat:@"<html><div style='font-family: arial,helvetica;font-size: 14px;'>%@</div></html>",[[[dict_Response objectForKey:@"objects"]objectAtIndex:0]objectForKey:@"detaildescription"]] baseURL:[NSURL URLWithString:@"http://newsletter.nobelbiocare.com/"]];
于 2012-06-13T08:41:33.290 回答
1

试试这些
1. 将格式说明符放在正文标记之间作为</font>%@</body></html>.
2.尝试在此重新加载网页视图

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    //Reload your web view here
}
于 2012-06-13T08:53:54.520 回答