2012-04-24 242 views
2

我工作的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

回答

0

我工作的一個相同的項目,剛剛實現了相同的功能與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