UIWebView changements contentSize sur iOS 7, une fois, en revenant de l'arrière-plan
Le Problème:
J'ai un UIWebView
entre mes UINavigationBar
et UITabBar
. Sur iOS 7, lorsque l'application entre fond et revient de nouveau, il me semble que si le contentSize
propriété de la UIWebView
changements de sorte qu'il y a un blanc bloc au-dessus d'elle.
Après le suivi de la contentSize
de la UIWebView
, lorsque l'application passe en premier plan (je le vérifie en observant la UIApplicationDidBecomeActiveNotification
), il a 49 soustraite de il est hauteur.
Capture d'écran (expurgée d'informations sensibles):
Mes Paramètres:
Je suis à l'aide d'un UIWebView
dans mon UIViewController
qui est incorporé dans un UITabBarViewController
qui est incorporé dans un UINavigationController
. J'utilise les Storyboards et avoir de "Régler le Défilement de l'Affichage des Encarts", "Redimensionner Vue De la PLUME" et "Étendre les Bords Sous la Tob Bars". Sur le UIWebView
j'ai décoché "les Échelles de la Page D'Adapter". Je ne fais pas n'importe quoi dans le viewDidAppear
ou viewWillAppear
méthodes. Je l'ai testé sur iOS 6, et le problème ne se produit pas. Aussi, je ne suis pas l'utilisation de l'auto-layout.
Code:
self.webView.scrollView.scrollEnabled = NO;
self.webView.scrollView.bounces = NO;
self.webView.scalesPageToFit = NO;
Après le suivi de contentSize & cadre en viewDidAppear
& appHasGoneInForeground
:
Cadre va de 320x455 à 320x455
contentSize va de 320x504 à 320x455
Quelqu'un a une idée de ce que je suis en manque, ici et/ou pourquoi cela se produit? Merci pour votre temps!
Ouais, la capture d'écran de l'iPhone 5. Bien que je l'ai juste testé dans le simulateur pour le 3,5" écran, et le problème se produit également, il y
définir la taille de l'écran de la fenêtre de limites pas de coder en dur
Pourriez-vous développer? Je n'ai pas coder en dur mon point de vue pour 3,5" ou 4" les écrans.
comment définir uiwebview taille
OriginalL'auteur Thermometer | 2013-11-28
Vous devez vous connecter pour publier un commentaire.
"Je suis l'aide d'une UIWebView dans mon UIViewController qui est incorporé dans un UITabBarViewController qui est incorporé dans un UINavigationController".
Ce n'est pas pris en charge par Apple. lien
Je voudrais essayer une plus simple et valide conteneur arrangement d'abord et voir si cela résout le problème. Notez que même si vous parvenez à résoudre ce problème spécifique, si vous gardez à l'aide de votre hiérarchie, vous peut encore fonctionner dans l'inattendu et, éventuellement incompatibles questions relatives à l'IU.
UINavigationController
etUITabBarController
pour voir si cela fait une différence.J'ai restructuré de façon à charger modal dans un
ViewController
. Maintenant, ce problème ne se produit pas. +1 pour suggérer à restructurer.Content d'avoir pu aider. Je souhaite à Apple de mettre dans leur SDK règles comme celle que j'ai cité, ou au moins avertir lorsque ces règles sont violées, au lieu de compter sur nous pour que nous les connaissons par cœur.
OriginalL'auteur Danra
S'il vous plaît essayer
self.automaticallyAdjustsScrollViewInsets = NO
dans webView du viewController.automaticallyAdjustsScrollViewInsets est une nouvelle propriété dans iOS7 SDK, et la valeur par défaut est OUI.Il peut automatiquement ajuster viewController de la scrollView dans iOS7.Vous pouvez obtenir plus d'informations avec la recherche google.
J'espère que cela peut vous aider.
Désolé, la modification de cette propriété n'a pas aidé. Merci d'essayer de les aider à bien
Merci @mengxiangjian, m'a sauvé des heures de débogage!
Vous êtes les bienvenus.
Fantastique!!!! J'ai lutté avec pendant un certain temps (en utilisant la mise en page automatique). Maintenant, ma vue web du contenu remplit la totalité de l'écran quelle que soit la taille de l'écran. J'ai décoché la case "Régler le Défilement de l'Affichage des Encarts" de mon point de vue contrôleur (pas webview) et le problème est résolu.
OriginalL'auteur mengxiangjian
Vous pouvez setContentSize ou un cadre sur:
ensemble UIWebview dans xib bottomscle
autrement, vous pouvez définir
viewDidLayoutSubviews
n'a pas de résoudre le problème 🙁OriginalL'auteur payal
C'est un comportement très étrange. Êtes-vous à l'aide de mise en page automatique? Si vous êtes, vérifiez que vos contraintes de s'assurer que la webView bords sont toujours égal à la ViewController de vue arêtes.
Si vous n'utilisez pas de mise en page automatique, définissez la autoresizingMask tels que l'attaque et de fuite de l'espace sont fixes:
Si cela ne fonctionne pas, vous pouvez ajouter un hack/solution de contournement à l'aide de KVO (veuillez n'utiliser cela comme un dernier recours, car il n'est pas de bonne pratique):
Puis de mettre en œuvre la méthode
et définir la contentSize à ce qu'il devrait être.
La définition explicite de la autoresizingMask n'a pas aidé. Très bizarre. J'ai aussi essayé votre hack, qui ne fonctionne pas pour moi. Je suis de vérifier si la contentsize est inférieure à la taille souhaitée dans
- (void) observeValueForKeyPath
puis en définissant la contentSize à la bonne taille. Dois-je utiliser setNeedsLayout ou quelque chose pour concrétiser les changements? Parce que mon NSLogs désormais dictent la bonne contentSize après le retour dans l'appavez-vous également vérifié que le cadre pour la webview est correcte? il se pourrait que le cadre est en cours de modification.
Ouais le cadre ne change pas.
J'ai l'impression de l'image, encadré et contentsize lorsque la vue est chargé dans
viewDidAppear
etappHasGoneInForeground
pour voir quelle est la différence. D'abord le contentSize est 320x504 et le cadre est 320x455, l'encart est de 0. Après le retour de la contentSize est 320x455 et le cadre est 320x455, l'encart est resté 0.OriginalL'auteur paulrehkugler
Vous pouvez essayer ce code (je sais que c'est dangereux)
Le nombre après la _webView.cadre.de l'origine.y
OriginalL'auteur Melih Büyükbayram
Hi mate veuillez voir l'image qui pourrait vous aider.
Lorsque vous avez la UIWebview ou tableview veuillez vérifier le tout le sens de l'auto redimensionnement sur le droit de la UIwebview ( Taille de l'Inspecteur de l'onglet )
Et aussi, vous avez qu'à mentionner le Delta Y à -20 et la Hauteur du Delta de 20, ce qui est pour iOS 7
Hey mate ne pas ajouter de delta pour iOS 6, ajouter ceci uniquement pour iOS 7. Pour les autres versions, il serait de calculer par le système.
L'option est appelée "iOS 6/7 Deltas".. 😛
permet d'avoir une conversation dans une salle de chat, chat.stackoverflow.com/rooms/15038/ios-developer-family
OriginalL'auteur Raviraj Jadeja