2013-05-11 135 views
2

我在iPhone应用程序的一个UIWebView中显示HTML内容。UIWebView HTML字体大小问题

检查低于2倍的图像:

https://dl.dropboxusercontent.com/u/68104003/Screen%20Shot%202013-05-11%20at%2011.47.02%20AM.png https://dl.dropboxusercontent.com/u/68104003/Screen%20Shot%202013-05-11%20at%2011.47.28%20AM.png

我已经使用相同的HTML代码两者的标题,但它在屏幕上显示的不同的字体大小。

下面是HTML代码我已经使用:

<span style="font-size:19px;"><strong><span style="font-family:times new roman,times,serif;">4.6&nbsp;&nbsp;Lorem Ipsum is simply</span></strong></span></br> 

<span style="font-size:19px;"><strong><span style="font-family:times new roman,times,serif;">4.4&nbsp;&nbsp;Type and Scrambled</span></strong></span></br> 

请帮助。

回答

0

UIWebView支持缩放,这自然会影响类型的大小。很有可能当你看到更大的类型时,你只是进一步放大,也许是因为这两个页面的宽度不同。

+0

当我们缩放肯定会影响大小 改变初始规模,但是当我不缩放页面,然后它也显示不同的字体大小。这是一个书籍应用程序,所以我使用了UIPageViewController,我在其中显示UIWebView,页面宽度相同。 – Reena 2013-05-11 06:53:05

+0

@Reena我知道web视图可能是相同的,但由HTML确定的页面宽度可能不同。 UIWebView将尝试适应整个HTML页面,所以如果你在一个页面上获得了一些宽泛的内容,而另一个页面上却没有宽泛的内容,那么页面上包含更多内容的文本会变得更小。 – Caleb 2013-05-11 06:58:25

+0

同意。我会检查 – Reena 2013-05-11 07:15:22

1

我使用下面的代码来修复字体大小和文本对齐问题。希望它会对你有所帮助。

- (void)viewDidLoad 
{ [super viewDidLoad]; 
currentTextSize = 100; 
webview.userInteractionEnabled=YES; 
webview.delegate=self; 
webview.scalesPageToFit=YES; 
webview.scrollView.pagingEnabled = YES;} 

-(void)webViewDidFinishLoad:(UIWebView *)webView{ 
NSString *varMySheet = @"var mySheet = document.styleSheets[0];"; 
NSString *addCSSRule = @"function addCSSRule(selector, newRule) {" 
"if (mySheet.addRule) {" 
"mySheet.addRule(selector, newRule);"        // For Internet Explorer 
"} else {" 
"ruleIndex = mySheet.cssRules.length;" 
"mySheet.insertRule(selector + '{' + newRule + ';}', ruleIndex);" // For Firefox, Chrome, etc. 
"}" 
"}"; 
NSString *insertRule2 = [NSString stringWithFormat:@"addCSSRule('p', 'text-align: justify;')"]; 
NSString *insertRule1 = [NSString stringWithFormat:@"addCSSRule('html', 'padding: 0px; height: %fpx; -webkit-column-gap: 0px;')", webView.frame.size.height]; 

NSString *setTextSizeRule = [NSString stringWithFormat:@"addCSSRule('body', '-webkit-text-size-adjust: %d%%;')", currentTextSize]; 
[webView stringByEvaluatingJavaScriptFromString:varMySheet]; 
[webView stringByEvaluatingJavaScriptFromString:addCSSRule]; 
[webView stringByEvaluatingJavaScriptFromString:insertRule1]; 
[webView stringByEvaluatingJavaScriptFromString:insertRule2]; 
[webView stringByEvaluatingJavaScriptFromString:setTextSizeRule];} 
+0

从哪里我可以得到“currentTextSize”? – Reena 2013-05-11 07:27:39

+0

100返回实际的html字体大小。 – Ashini 2013-05-11 07:32:31

+1

谢谢,我有一个类似的问题,这使我在正确的轨道上,我只是将-webkit文本大小调整为无。 – Paludis 2013-11-20 02:01:51

2
<meta name=\"viewport\" content=\"initial-scale=5.0\" /> 

已将此添加到HTML字符串 为我工作的要求