我有一个加载html5横幅的UIView。由于横幅宽度比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];
}
答案 0 :(得分:2)
UIWebView显示HTML,这意味着,如果您的HTML必须按照您的意愿呈现 - 实现此目的的唯一正确方法是修复加载的HTML(和/或CSS)。 您可以通过以下几种方式实现:
答案 1 :(得分:1)
您可以使用stringByEvaluatingJavaScriptFromString:
使用Javascript在DOM中查询所需元素的宽度。然后,您可以调整webview的大小以适合该大小。
这给你宽度:
document.getElementById('YOURID').offsetWidth;