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; 
} 
+0

这是最有可能由“canPerformAction”功能引起的。你的样子是什么? – borrrden 2012-04-24 08:02:41

+0

请检查我的编辑。 – 2012-04-24 08:07:28

+1

好的,它不在那里...我的下一个猜测是你将所有的html加载到一个长流中,并且菜单控制器必须认真考虑放置popover的位置。您可以使用乐器的时间分析器功能确认哪个功能需要很长时间。在你做完这些之后,你会更好地了解正在采取这么久的事情。在此之前,很难说是什么原因造成的。 – borrrden 2012-04-24 08:13:06

我工作的一个相同的项目,刚刚实现了相同的功能与UIMenuController。我没有注意到任何延迟显示大章节的菜单。你能描述一下你的触摸事件在UIWebView中的处理方式以及任何额外的手势等等。另外,有没有JavaScript在运行时加载?

+0

确定..它真的很复杂来形容这里这一切,但我尝试以简单的方式描述它..我通过从我的webView类的hitTest方法接收触摸..我知道它的错误子类的webView,但除了hitTest方法,这个类里面什么都没有..因为我这样做,因为我在某些情况下需要知道触摸点的确切位置,如按下突出显示的文本,我从javaScript接收到一个url,他突出显示,所以如果他想要删除或共享此文本,请提供弹出式菜单,我没有延迟在这些情况下,所有..它只是作为我描述了大章节的正常选择 – 2012-05-02 11:17:44

+0

。 – 2012-05-02 11:18:00

+0

我太子类的UIWebView,但实施canPerformA ction在子类中再延长一个UIWebView委托转嫁菜单选项,以该公司拥有的view.As完整性检查,并改变UIMenuController setMenuVisible的“动画”选项会影响性能的UIViewController?你如何建立和显示菜单?我自己,我预先构建所有菜单选项,然后使用我自己的菜单状态选择要在canPerformAction中显示的内容。 – 2012-05-02 14:21:33