具有UIWebPaginationModeLeftToRight的UIWebView背景颜色始终为白色



UIWebView分页有问题

你可以很容易地重复:将uiwebview添加为子视图。然后

_webView.backgroundColor = [UIColor clearColor];
_webView.opaque = NO;
[_webView loadHTMLString:@"some string" baseURL:nil];

现在您有了UIWebView的透明背景。但是如果你设置

_webView.paginationMode = UIWebPaginationModeLeftToRight;

它以白色背景出现。我是不是错过了什么?为什么分页模式会更改背景颜色?

如果你的网页视图不能填满整个页面,网站的其余部分将是白色块视图。这是系统默认操作
您可以通过将视图添加到该空间来进行自定义,以使背景看起来与Web视图内容相同。

// omit create webView and colorView
let script = "document.documentElement.offsetHeight"
let contentHeight = webView.stringByEvaluatingJavaScriptFromString(script)
let frameHeight = webView.frame.height
let lastPageHeight = frameHeight * CGFloat(webView.pageCount) - CGFloat(Double(contentHeight!)!)
colorView.backgroundColor = UIColor.blueColor()
colorView.frame = CGRectMake(webView.frame.width * CGFloat(webView.pageCount-1), webView.frame.height - lastPageHeight, webView.frame.width, lastPageHeight)

参考https://forums.developer.apple.com/thread/27906

最新更新