这是我的问题:
我目前正在使用objective-c编写电子书阅读器,并希望使用multicolumns在我的webview中对我的xhtml文件进行分页。 不幸的是,当我向我的CSS添加Multicolumns时,我的html似乎只有2“页”长,这正是前两个
标签。 有谁知道我做错了什么?。
这里是用于将新设置注入我的css的代码:
NSString *varMySheet = @"var mySheet = document.styleSheets[0];";
NSString *addCSSRule = @""
"function addCSSRule(selector, newRule) {"
"if (mySheet.addRule) {"
"mySheet.addRule(selector, newRule);" // For Internet Explorer
"} else {"
"ruleIndex = mySheet.cssRules.length;"
"mySheet.insertRule(selector + '{' + newRule + ';}', ruleIndex);" // For Firefox, Chrome, etc.
"}" // endif mySheet.addRule
"}"; // end addCSSRule()
NSString *insertColumns = [NSString stringWithFormat:@"addCSSRule('div', 'height: 370px; -webkit-column-width: 320px');"];
[wv_reader stringByEvaluatingJavaScriptFromString:varMySheet];
[wv_reader stringByEvaluatingJavaScriptFromString:addCSSRule];
[wv_reader stringByEvaluatingJavaScriptFromString:insertColumns];
对于滚动,我使用以下代码:
int i_scrollTo = ([AppState sharedInstance].i_myselectedPage -1) * wv_reader.frame.size.height;
[wv_reader stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(0,%d);", i_scrollTo]];
如果我没有在我的CSS中设置Multicolumns,那就完美了。
我还测试过,如果我的html在添加多列后以某种方式被切断,但是webview内容的NSLog显示,整个电子书都被加载了。 虽然我发现了最大的滚动高度,但是没有列它是 79061 ,并且在将列插入我的css之后它被减少为 424 由于某种原因我不知道知道。
有人可以帮我解决这个问题吗?我正在解决这个问题大约一个星期,但找不到解决方案。
提前谢谢。 特立独行的 的 * UPDATE * * 水平滚动也不起作用,因为我的document.scrollWidth被卡在我的列的宽度上,我觉得这很奇怪。