我尝试使用' 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];
但最后网页视图总是显示白色背景,我该如何让它透明?
答案 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 ..