2013-04-24 76 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;