如何在iOS中纵向和横向居中显示webview的内容?

时间:2013-05-24 18:37:29

标签: iphone ios ipad webview

我用Google搜索了一下,我似乎无法找到任何对我有意义的东西。我需要垂直和水平地集中webview的内容。我已经能够使用横向来处理这个:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString *bodyStyle = @"document.getElementsByTagName('body')[0].style.textAlign = 'center';";
    [self.webView stringByEvaluatingJavaScriptFromString:bodyStyle];
}

但我在垂直方面找不到任何东西。有任何想法吗?任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

将所有内容保存在table中,然后对齐表格单元格。

CSS

td {
    text-align: center;
    vertical-align: middle;
}

<table border="1">
    <tr>
        <td align="center" valign="middle">Text</td>
        <td align="center" valign="middle">Text</td>
    </tr>
</table>

答案 1 :(得分:2)

垂直居中:

CGSize contentSize = webView.scrollView.contentSize;
CGFloat d = contentSize.height/2 - webView.center.y;
[webView.scrollView setContentOffset:CGPointMake(0, d) animated:NO];

答案 2 :(得分:1)

试试这个,

NSString *bodyStyleVertical = @"document.getElementsByTagName('body')[0].style.verticalAlign = 'middle';";
NSString *bodyStyleHorizontal = @"document.getElementsByTagName('body')[0].style.textAlign = 'center';";
NSString *mapStyle = @"document.getElementById('mapid').style.margin = 'auto';";

[webView stringByEvaluatingJavaScriptFromString:bodyStyleVertical];
[webView stringByEvaluatingJavaScriptFromString:bodyStyleHorizontal];
[webView stringByEvaluatingJavaScriptFromString:mapStyle];

希望它会对你有帮助.....