2013-05-11 3 views
2

Я показываю содержимое HTML в UIWebView в одном из приложений iPhone.Ошибка размера шрифта 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-код я использовал:

<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

+0

@Reena Я понимаю, что веб-представления могут быть одинаковыми, но ширина страницы, определяемая HTML, вероятно, отличается. UIWebView попытается установить всю HTML-страницу, поэтому, если у вас есть широкий контент на одной странице, а не на другом, текст на странице с более широким контентом будет меньше. – Caleb

+0

Согласен. Я проверю, что – Reena

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

+0

100 возврат фактический размер шрифта html. – Ashini

+1

Спасибо, у меня была аналогичная проблема, и это поставило меня на правильный путь, я просто установил -webkit-text-size-adjust-none. – Paludis

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

добавил это в HTML строку работал для меня изменить первоначальный масштаб по мере необходимости

Смежные вопросы