gpt4 book ai didi

iphone - 使用 css 多列在 UIWebView 中对 html 进行分页时出错

转载 作者:行者123 更新时间:2023-12-03 20:16:18 27 4
gpt4 key购买 nike

这是我的问题:

我目前正在用 Objective-C 编写一个电子书阅读器,并希望使用多列在我的 web View 中对我的 xhtml 文件进行分页。不幸的是,当我将多列添加到我的 css 中时,我的 html 似乎只有 2“页”长,这正是前两个

标签。有谁知道我做错了什么?

这是我将新设置注入(inject)到我的 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 中设置多列,它会完美工作。

我还测试了,如果我的 html 在添加多列后以某种方式被切断,但 webview 内容的 NSLog 显示整个电子书已加载。当获得最大滚动高度时,我发现,没有列,它是 79061,并且在将列插入我的 css 后,由于某种原因,它会减少到 424 ,我不这样做知道。

有人可以帮我解决这个问题吗?我已经研究这个问题大约一周了,但找不到解决方案。

提前谢谢。特立独行

*更新**水平滚动也不起作用,因为我的 document.scrollWidth 固定在我的列的宽度上,我认为这很奇怪。

最佳答案

https://github.com/fedefrappi/AePubReader

也许这个示例可以帮助您?

关于iphone - 使用 css 多列在 UIWebView 中对 html 进行分页时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5180842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com