2013-04-24 61 views
1

我有一个加载html5横幅的UIView。由于横幅宽度比UIWebView短,因此在横幅的每一侧都会有填充。然而..每边的填充比我应该得到的要大得多。使用填充来居中UIWebView内容

我只是想横幅中心,如果横幅比UIWebView短。

而不是寻找这样的:(其中X为旗帜和O是填充)

| OOXXXXXXOO |

它看起来像这样:

| OOOOXXXXXX |

在这里,如果我启用滚动,我可以居中它像第一个例子。

我该如何解决这个问题?

代码

UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:bannerIdentifier]; 

if (!cell) { 

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"bannerCell"]; 
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, cell.contentView.bounds.size.width, cell.contentView.bounds.size.height)]; 
webView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin; 
webView.userInteractionEnabled = YES; 
webView.backgroundColor = [UIColor clearColor]; 
webView.opaque = NO; 
webView.delegate = self; 
webView.scrollView.bounces = NO; 
webView.scrollView.scrollEnabled = NO; 
webView.scalesPageToFit = YES; 

NSURL *url = [NSURL URLWithString:@"http://example.com/page.html"]; 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:requestObj]; 
[cell.contentView addSubview:webView]; 

} 
+1

您最好的选择是设计网页,以更加灵活。你是否使用横幅容器的固定宽度? – Jeremy 2013-04-24 13:39:48

回答

2

的事情是一个UIWebView显示HTML,这意味着,如果你的HTML,必须呈现为您希望 - 这是唯一正确的方式来实现这一目标是修复加载HTML(和或css)。 你能做到在几个方面:

  1. 如果你有访问服务器上的HTML数据,你可以调整它在UIWebView中正确地呈现。
  2. 如果您无法访问服务器上的HTML数据,则可以使用stringByEvaluatingJavaScriptFromString:并修复DOM中所需的元素。
1

您可以使用stringByEvaluatingJavaScriptFromString:使用Javascript查询DOM所需元素的宽度。然后,您可以调整web视图的大小以适应该大小。

这给你一个宽度: document.getElementById('YOURID').offsetWidth;