In meiner App gibt es 2 UIWebViews. beide nehmen den gesamten Bildschirm, so dass nur 1 auf einmal sichtbar ist. Wenn ich UIWebView A sehe und das iPad rotiere, wird der HTML-Code richtig dargestellt (mit allen Medienabfragen und CSS-Berechnungen). Aber wenn ich zu UIWebView B wechsle, ist das HTML-Tag 512 statt 768, was dazu führt, dass alle css-Berechnungen durcheinander geraten. Ich überprüfte und das Fenster von UIWebView B löst das Ereignis orientationchange aus (schrieb gerade an die Konsole, als es geschah). Es scheint, dass die Ansicht nicht dargestellt wird, wenn sie nicht sichtbar ist. Irgendeine Idee?UIWebView wird nach der Änderung der Ausrichtung nicht richtig gerendert
Antwort
Ein verstecktes UIWebView wird nicht richtig dargestellt (zum Beispiel wenn versteckt und man versucht ein Bild der Ansicht zu erfassen), aber sobald es angezeigt wird, wird das Seitenlayout ausgelöst, und es sollte an diesem Punkt (mit dem aktuellen Bild) korrekt dargestellt werden Größe).
Eine schnelle Schätzung ist es, zu versuchen, UIWebView.scalesPageToFit
zu ändern, ich habe das auf True gesetzt und es WFM in dem Fall, den Sie beschreiben.
Ein komplexes Beispiel ist https://github.com/brave/browser-ios, die UIWebViews als Registerkarten versteckt hat (versteckt == nicht in einer Ansichtshierarchie). In dieser App kann man die Bildschirmausrichtung ändern und dann zu einer anderen Registerkarte wechseln, wodurch die neu ausgewählte Registerkarte zur Stammansichtshierarchie hinzugefügt wird, so dass sie angezeigt wird, und die Webseite korrekt angeordnet wird.
Endete die UIWebView Größe in viewWillAppear zu beheben. nahm die Größe von ihr superview:
UIWebView* webView = (UIWebView*)self.webView;
[webView setFrame:CGRectMake(0, 0, self.view.superview.frame.size.width, self.view.superview.frame.size.height)];
- 1. UIWebView wird nicht korrekt gerendert
- 2. Größe ändern nach Änderung der Ausrichtung
- 3. UIwebview Inhalt wird nicht richtig geladen
- 4. JQueryMobile: einfache URL wird nach dem Laden nicht richtig gerendert
- 5. Auswirkung der Änderung der Ausrichtung auf Fragmente
- 6. Ember Aktion zur Änderung der Ausrichtung der Mobilgeräte
- 7. Wie wird das Fragmentfragment beibehalten, das nach der Änderung der Ausrichtung das Video wiedergibt?
- 8. iOS8 nicht in der Lage, das modale Formularblatt nach der Änderung der Ausrichtung neu zu sortieren
- 9. Aktionsmode nach der Änderung der Orientierung wiederherstellen
- 10. Fragment nicht nach der Änderung der Konfiguration
- 11. android locale Änderung in der Ausrichtung ändern
- 12. Bleiben Sie auf der aktuellen Registerkarte nach der Änderung der Ausrichtung Actionbar Android
- 13. Instanzvariable wird nach der Änderung zurückgesetzt
- 14. Sortierung wird nach Änderung der Datenquelle gelöscht
- 15. iPad Ausrichtung Änderung Problem
- 16. Eisen: Router wird nicht nach der Änderung der Route mit der gleichen Vorlage neu rendern
- 17. jQuery checkbox Änderung wird nicht richtig ausgelöst
- 18. android Änderung Ausrichtung programmatisch
- 19. Android Reverse Shared Element Übergang auf der Rückseite nach der Änderung der Ausrichtung?
- 20. Zugriff auf die Fragmentansicht bei der Änderung der Ausrichtung
- 21. Glas ist nicht richtig gerendert
- 22. Visual Studio wird nach Änderung der Inhaltsdatei nicht neu erstellt
- 23. Android VideoView - Beibehaltung der Seitenfülle nach Änderung der Bildschirmausrichtung
- 24. AlertDialog wird nicht korrekt gerendert
- 25. Wie wird die Elternkomponente bei Änderung der Unterkomponente in der nativen re-render-Funktion erneut gerendert?
- 26. Meine Komponente wird zunächst nach der konfigurierten Codeaufteilung gerendert
- 27. Vorlage wird nicht gerendert
- 28. showSoftInput funktioniert nicht nach der Änderung der Orientierung
- 29. UIView sind nicht richtig in ViewController nach der Rotation
- 30. Sound immer noch nach der Freigabe UIWebView
Sie meinen, sobald ein Benutzer einen Tab auswählt, wird ein neues UIWebView zur Hierarchie geschoben? Was passiert mit dem vorherigen Tab? Wird es aus der Hierarchie entfernt? Wenn ja, wie würde es den Zustand erhalten, wenn der Benutzer zurückgehen würde? – oriharel
Der Benutzer erstellt eine Registerkarte und ein neues UIWebView, das erstellt und der Ansichtshierarchie hinzugefügt wurde (Ja zur ersten Frage). Die UIWebView der vorherigen Registerkarte wird aus der Ansichtshierarchie entfernt (Ja zu Ihrer nächsten Frage). Wenn die vorherige Registerkarte erneut ausgewählt wurde, wird diese UIWebView erneut der Ansichtshierarchie hinzugefügt. Der Status wird beibehalten, solange das UIWebView im Speicher gehalten wird (d. H. In einer Variablen gespeichert ist), wenn es aus der Superview entfernt wird. –
Klingt nach einem guten Plan. Um keine unerwarteten Ergebnisse zu erzielen, habe ich die Größe von UWebView direkt vor dem Erscheinen "fixieren" (viewWillAppear) - der Elternteil hat die richtige Größe. – oriharel