UIMenuController响应速度很慢
我工作的EPUB阅读器,只是我建的读者结构将HTML文件的路径加载它UIWebView
,然后我分页的章节,并查看它...因为你知道,当你选择在webView中的文本menuController将出现,我有它的多个功能,如添加注释,突出显示文本,共享..等等。每一件事情都很好,但我有一个特例,一些书包含大章节(HTML文件大小约180kb,正常情况下通常约30-50kb),在这类章节中,当我选择UIMenuController
文本时很多时间出现!在结束它的出现和运作良好,但其烦人的用户等待这个时间量(我们在这里讨论的大约7秒!!)..我的构建目标是iOS 4的& 5,这是在模拟器发生和设备..任何人都可以提供帮助?UIMenuController响应速度很慢
编辑:
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;
}
我工作的一个相同的项目,刚刚实现了相同的功能与UIMenuController。我没有注意到任何延迟显示大章节的菜单。你能描述一下你的触摸事件在UIWebView中的处理方式以及任何额外的手势等等。另外,有没有JavaScript在运行时加载?
确定..它真的很复杂来形容这里这一切,但我尝试以简单的方式描述它..我通过从我的webView类的hitTest方法接收触摸..我知道它的错误子类的webView,但除了hitTest方法,这个类里面什么都没有..因为我这样做,因为我在某些情况下需要知道触摸点的确切位置,如按下突出显示的文本,我从javaScript接收到一个url,他突出显示,所以如果他想要删除或共享此文本,请提供弹出式菜单,我没有延迟在这些情况下,所有..它只是作为我描述了大章节的正常选择 – 2012-05-02 11:17:44
。 – 2012-05-02 11:18:00
我太子类的UIWebView,但实施canPerformA ction在子类中再延长一个UIWebView委托转嫁菜单选项,以该公司拥有的view.As完整性检查,并改变UIMenuController setMenuVisible的“动画”选项会影响性能的UIViewController?你如何建立和显示菜单?我自己,我预先构建所有菜单选项,然后使用我自己的菜单状态选择要在canPerformAction中显示的内容。 – 2012-05-02 14:21:33
这是最有可能由“canPerformAction”功能引起的。你的样子是什么? – borrrden 2012-04-24 08:02:41
请检查我的编辑。 – 2012-04-24 08:07:28
好的,它不在那里...我的下一个猜测是你将所有的html加载到一个长流中,并且菜单控制器必须认真考虑放置popover的位置。您可以使用乐器的时间分析器功能确认哪个功能需要很长时间。在你做完这些之后,你会更好地了解正在采取这么久的事情。在此之前,很难说是什么原因造成的。 – borrrden 2012-04-24 08:13:06