【发布时间】:2012-04-24 07:53:16
【问题描述】:
我正在开发 epub 阅读器,只是我构建了阅读器结构以获取 html 文件的路径,将其加载到 UIWebView 上,然后我对章节进行分页并查看它......正如你在选择文本时所知道的在 webView 中,menuController 将出现,我有多个功能,例如添加注释、突出显示文本、共享 ..等。每件事都很好,但我有一个特殊情况,有些书包含大章节(html 文件大小约为 180kb,而普通文件通常约为 30-50kb),在这些章节中,当我选择文本时UIMenuController花太多时间出现!最后它出现并且运行良好,但它让用户等待这么长的时间(我们在这里谈论大约 7 秒!!).. 我的构建目标是 iOS 4 和 5,这发生在模拟器中和设备..谁能提供帮助?
编辑:
canPerformAction 在我的 ViewController 中:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
BOOL can = [super canPerformAction:action withSender:sender];
if(action == @selector(copyPressed::) ||
action == @selector(addNotePressed:) ||
action == @selector(sharePressed:) ||
action == @selector(highlightPressed:))
{
can = YES;
}
if (action == @selector(copy:) || action == @selector(_define:) || action == @selector(selectAll:) || action == @selector(select:))
{
can = NO;
}
return can;
}
【问题讨论】:
-
这很可能是由“canPerformAction”函数引起的。你的是什么样子的?
-
好吧,它不存在...我的下一个猜测是您正在将所有 html 加载到一个长流中,并且菜单控制器必须认真考虑将弹出框放在哪里。您可以使用 Instruments 的 Time Profiler 功能来确认哪个功能需要很长时间。在你这样做之后,你会更好地了解什么需要这么长时间。在那之前,很难说是什么原因造成的。
-
您使用 Time Profiler 找出哪个函数花费了很长时间吗?
-
是的,它是 canPerformAction ,它的代码在我的编辑中。
标签: ios uiwebview uimenucontroller