UIWebView PaginationMode总是显示白色背景,如何使其透明?

时间:2014-11-20 03:10:16

标签: ios background uiwebview pagination transparent

我尝试使用' paginationMode'为iOS 7后者制作我的html内容分页。

//set webview to transparent
webView.backgroundColor = [UIColor clearColor];
webView.opaque = NO;

// set multi-columns
webView.paginationBreakingMode = UIWebPaginationBreakingModePage;
webView.paginationMode = UIWebPaginationModeLeftToRight;
webView.pageLength = webView.bounds.size.width;

// set html to transparent background
NSString *transparent = @"addCSSRule('html', 'background-color: transparent')";
[webView stringByEvaluatingJavaScriptFromString:transparent];

但最后网页视图总是显示白色背景,我该如何让它透明?

3 个答案:

答案 0 :(得分:3)

您可能想要提供内容背景。但是,当我们从左到右使用分页时,将webview设置为透明并提供背景颜色以查看背后颜色的技术可能效果不佳。

我通过CSS提供内容背景解决了这个问题,并在this post

的帮助下解决了html内容末尾的空白区域问题
    - (void)addExtraContentView
{
    UIWebView* wv = self.webView;
    if(!self.viewExtraContent)
    {
        NSString* width = [wv stringByEvaluatingJavaScriptFromString:@"document.documentElement.offsetHeight;"];
        CGFloat contentHeight = [width floatValue];
        CGFloat contentWidth = wv.scrollView.contentSize.width;
        CGFloat y = (int)contentHeight % (int)wv.frame.size.height;
        self.viewExtraContent = [[UIView alloc] initWithFrame:CGRectMake(contentWidth - wv.frame.size.width, y, wv.frame.size.width, (wv.frame.size.height))];
    }
    self.viewExtraContent.backgroundColor = [BookReaderSettings shared].backgroundColor;
    [wv.scrollView addSubview:self.viewExtraContent];
}

当webview完成加载内容时调用此方法。

答案 1 :(得分:1)

也许尝试将scrollView的背景设置为清除?

webView.scrollView.backgroundColor = [UIColor clearColor];

修改 好的,所以看似设置后

UIWebPaginationMode

背景变成白色:/

答案 2 :(得分:0)

在paginationmode的情况下,它并不直接从目标c代码中工作。但是,我通过为' body'注入CSS来完成我的工作。标记:

NSString* path=[[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"];
@"addCSSRule('body', 'background-color: transparent !important; background-image:url(%@); background-repeat: repeat-x; background-size:%fpx %fpx;')",[NSURL fileURLWithPath:path],webView.frame.size.width,webView.frame.size.height];

注意:它用于UIWebPaginationModeLeftToRight ..