2013-06-11 12 views
5

Meine UIPageViewController zeigt UIViewController Ansichten mit UIWebView als Teilansichten. Mein Problem ist, dass wenn ich mich vorwärts bewege, die UIWebView langsamer lädt, als wenn ich rückwärts kehre. Wenn ich rückwärts blicke, sehe ich sofort die Ansicht des View-Controllers, den ich sehen möchte, aber wenn ich vorwärts gehe, kann ich die Ansicht des View-Controllers für einen kurzen Moment weiß sehen, bevor die Subview erscheint.UIPageViewController lädt langsam beim Vorwärtsdrehen, aber nicht rückwärts

Dies liegt nicht daran, dass die vorherigen Seiten einmal geladen wurden, da das Problem auch beim Vorwärts-, Rückwärts- und Vorwärtsblättern auf derselben Seite auftritt.

Ich verwende die gleichen Methoden und Klassen beim Laden der nächsten und vorherigen Seiten.

Warum passiert das und gibt es eine Möglichkeit, dieses Problem zu umgehen?

+0

Verwenden Sie NSOperationQueue oder GCD in Ihren Methoden? – aug2uag

+0

Nein, ich mache nichts asynchron :) –

Antwort

0

Ich bin nicht wirklich sicher darüber, aber ich denke, dass Sie Nettogeschwindigkeit dies beeinflussen können.

+1

Keiner der Inhalte im 'UIWebView' wird aus dem Internet geladen. Alle Daten sind lokal. –

0

Vielleicht versuchen, die Daten auf einem anderen Thread zu laden. Etwas wie:

- (void)loadAsynchronousWithMainQueue 
{ 
    NSBlockOperation* blockOperation = [NSBlockOperation blockOperationWithBlock:^{ 
     //your operations here that do not deal with setting UI elements 

     NSBlockOperation* blockWithMainQueue = [NSBlockOperation blockOperationWithBlock:^{ 
     //set UI elements here, on main thread 
     }]; 

    [[NSOperationQueue mainQueue] addOperation:blockWithMainQueue]; 

    }]; 

    [operationQueue addOperation:blockOperation]; 
} 
+0

Wo wird "operationQueue" deklariert? –

+0

Die OperationQueue kann ein Singleton sein oder an anderer Stelle deklariert und zugewiesen werden. Sie können dies während des Lebenszyklus des ViewControllers oder an anderer Stelle tun – aug2uag

Verwandte Themen