2013-04-06 10 views
7

Mam "opis produktu" UIViewController w moim scenorysie, który ma UIWebView, aby wyświetlić "tekst sformatowany" (w zasadzie pogrubiony i pochyły). Widok internetowy jest ładowany za pomocą ciągu znaków (pobranego z CoreData) loadHTMLString. Problem polega na tym, że przy pierwszym wyświetlaniu widoku występuje przynajmniej jedno sekundowe opóźnienie przed wyświetleniem widoku WWW. Dalsze widoki "szczegółów produktu", które są ładowane bez obciążenia. Jest to tylko pierwszy widok "szczegółów produktu", który zajmuje trochę czasu.Aplikacja UIWebView ładuje się bardzo powoli przy pierwszym wyświetleniu w określonym sterowniku UIViewController

To co próbowałem (bez radości)

  1. Wyświetlanie UIWebView z tekstem na pierwszym ekranie (aby rozgrzać UIWebView)
  2. Kiedy przychodzi czas, aby pokazać widoku szczegółów init widok strony w metodzie prepare for segue i przekaż go do kontrolera widoku "szczegóły produktu".
  3. Próbowałem różne kombinacje mające na stanowisku internetowej w serii ujęć/nie w serii ujęć/w widoku przewijania itp

Byłbym bardzo zainteresowany jeśli inni mieli ten problem i jak dostali się nad nim/pracował nad tym. Uważam to za dziwne, że nie byłem w stanie znaleźć wielu podobnych problemów na SO; Muszę robić coś głupiego ...


Uwaga, używam interfejsu UIWebView, dzięki czemu mogę wyświetlać tekst sformatowany. Rozumiem, że mogę wyświetlać tekst sformatowany za pomocą innych elementów sterujących, ale program, który sprawia, że ​​tekst, który chcę wyświetlić, może tylko eksportować tekst sformatowany za pomocą HTML.

+2

Czy próbowałeś wstępnego ładowania podstawowej Dane idącą HTML ciąg? Możliwe, że powolny komponent to Core Data, a nie UIWebView. (Ponadto, zamiast zgadywać, zastanów się nad uruchomieniem aplikacji w Instrumentach - powinno Ci powiedzieć, gdzie nadejdzie czas.) – Tim

+0

Być może zainteresują Cię takie projekty, jak [DTCoreText] (https://github.com/Cocoanetics/DTCoreText), które pozwala na parsowanie HTML-a do czegoś, co możesz wyświetlić bez ciężkiej i powolnie ładowanej strony internetowej. –

+0

Tim, próbowałem twojej sugestii (ale dzięki). @JesseRusak, przyjrzę się DTCoreText. Dzięki –

Odpowiedz

3

Zamiast stosowania jako UIWebView do wyświetlania bogatej zawartości tekstowej, można spróbować użyć OHASBasicHTMLParser z OHAttributedLabel którym jest wstecznie kompatybilny z wersjami przed iOS 6.

można znaleźć przykładowe jego parserami znaczników here.

+0

Dzięki. To najlepsza odpowiedź, więc dam ci pięćdziesiąt. Szkoda, że ​​nie mogę podzielić punktów z [Jesse Rusak] (http://stackoverflow.com/questions/15846850/uiwebview-is-loading-very-slowly-on-the-first-time-it-is- display-in-a-specific/16020957?noredirect = 1 # comment22628155_15846850), ponieważ dał podobną odpowiedź, ale w komentarzach. Dla innych: jego sugestia to [DTCoreText] (https://github.com/Cocoanetics/DTCoreText). Nie oceniłem ich jeszcze, ale oboje wyglądają, jakby wykonali zadanie. –

+0

Potrzebuję czegoś takiego, jak w mojej aplikacji. Proszę, opisz to jeszcze bardziej. Jak mogę skrócić czas ładowania i unikać tylko nieodpowiednich treści z WebView. Muszę pokazać tylko pokrewną treść. Z góry dziękuję. – JAck

6

Jest to typowy problem dla UIWebView. Moje obejście polega na tym, aby widok sieciowy był początkowo ukryty (zamiast tego pokazał wskaźnik "Ładowanie ..."), a następnie uczynić go niezamkniętym w metodzie webViewDidFinishLoad:.

+0

Próbowałem już tego rodzaju pracy. Nie podobał mi się czas ładowania. –

+0

Czy próbowałeś sugestii 'ararog'? Wygląda na to, że jest dokładnie to, czego potrzebujesz. – MusiGenesis

Powiązane problemy