如果有更多文本,UIWebView会增加字体大小

时间:2011-01-24 14:19:55

标签: iphone objective-c uiwebview

您好 我试图通过具有UIWebView子视图的相同UIViewController显示两个不同的html页面。

两个html页面都使用相同的CSS并且结构相似。但是,我注意到,当在iOS模拟器和设备上查看时,内容较少的页面的字体大小远小于具有更多内容的页面的字体大小。

有人可以向我解释一下我在两个视图上使用相同的字体大小可以做些什么吗?

这是我的UIWebView代码:

CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
self.webView = [[[UIWebView alloc] initWithFrame: appFrame] autorelease];
self.webView.backgroundColor= [UIColor whiteColor];
self.webView.scalesPageToFit= YES;
self.webView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |     UIViewAutoresizingFlexibleHeight);

NSString *filePath = [[NSBundle mainBundle] pathForResource:self.resourceName ofType:@"html"];
NSURL *urlLocation= [NSURL fileURLWithPath:filePath];
[self.webView loadRequest:[NSURLRequest requestWithURL:urlLocation]];
self.view = self.webView;

这是关联的html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4 /loose.dtd">
<html>
<head>
<LINK href="manual.css" rel="stylesheet" type="text/css">
<title>My Info text</title>
</head>
<body>
    <table >
        <tr>
         <td class="title">
              <b>How to do it</b>
         </td>
        </tr>
        <tr>
         <td class ="content">
          Some Instructions on how to do it properly.
         </td>
        </tr>   
    </table>
</body>
</html>

这是CSS。主要问题似乎是td.content,因为标题大小合适(或者两个屏幕之间至少没有明显不同):

body {
background-color : rgb(255,255,255);
font-size : 35px;
font-family : Helvetica;
color : rgb(54,54,54);
margin-right : 0px;
margin-left : 0px;
}

table {
width : 100%;
height: 100%;
margin-top : 20px;
margin-bottom : 20px;   
margin-right : 0px;
margin-left : 0px;
border-spacing : 0px;
padding-right : 0px;
padding-left : 0px;
}

tr {
margin-top : 0px;
margin-bottom : 0px;    
margin-right : 0px;
margin-left : 0px;
}

td.content {
font-size : 1em;
text-align : left;
vertical-align: top;
margin-top : 0px;
margin-bottom : 0px;    
margin-right : 0px;
margin-left : 0px;
padding-top : 5px;
padding-bottom : 10px;
padding-right : 30px;
padding-left : 30px;
}

td.title {
width : 170px;
font-size : 1.5em;
font-weight : bold;
text-align : left;
vertical-align : top;
margin-top : 0px;
margin-bottom : 0px;    
margin-right : 0px;
margin-left : 0px;
padding-top : 5px;
padding-bottom : 10px;
padding-right : 30px;
padding-left : 30px;
}

2 个答案:

答案 0 :(得分:3)

尝试设置scalePageToFit属性?

[myWebView setScalesPageToFit:NO];

您已将其设置为YES,这可能会影响它决定放大页面的方式吗?

(摘自the docs here

答案 1 :(得分:0)

我有2个按钮 - A-和A +

    @interface
NSUInteger textFontSize;

- (IBAction)changeTextFontSize:(id)sender

    switch ([sender tag]) {
        case 1: // A-
            textFontSize = (textFontSize > 50) ? textFontSize -5 : textFontSize;
            break;
        case 2: // A+
            textFontSize = (textFontSize < 160) ? textFontSize +5 : textFontSize;
            break;
    }

    NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%d%%'", 
                          textFontSize];
    [web stringByEvaluatingJavaScriptFromString:jsString];
    [jsString release];
}