iphone - 使用填充将UIWebView内容居中

标签 iphone ios objective-c

我有一个UIView加载html5横幅。由于横幅广告的宽度比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];

}

最佳答案

关键是UIWebView显示HTML,这意味着,如果必须按需要呈现HTML,则实现此目标的唯一正确方法是修复已加载的HTML(和/或CSS)。
您可以通过以下几种方式进行操作:

  • 如果您有权访问服务器上的HTML数据,则可以对其进行调整以使其在UIWebView中正确呈现。
  • 如果您无权访问服务器上的HTML数据,则可以使用stringByEvaluatingJavaScriptFromString:并修复DOM中所需的元素。
  • 关于iphone - 使用填充将UIWebView内容居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16193233/

    相关文章:

    iPhone 加载屏幕问题

    objective-c - UIKeyboard-关闭大写锁定键

    objective-c - dispatch_async 自定义队列永远不会退出 block

    iphone - 如何从另一个 iOS APP 启动 Health iOS 应用程序

    iphone - 可以更改个人 Apple 开发者帐户的发布者/版权名称吗?

    iphone - 自定义 View Controller 委托(delegate)不起作用

    ios - 源文件swift中的编辑器占位符

    ios - iPhone 中的 UIImagePickerController 问题?

    iphone - 难以使 UIKeyboard 在 UINavigationController 中消失

    iOS - 自定义确认 View