UIWebView contentInset sans supplément de hauteur au bas
Je suis en création d'une vue contrôleur qui utilise un affichage web, qui se glisse derrière la barre de navigation et la barre d'état. Pour ce faire, je suis le webView.scrollView.contentInset
bien d'avoir un encart supérieur de 64
.
Toutefois, cela ne veut pas réduire le montant de la zone de la vue web veut prendre, donc si une page est de moins d'une page-écran, il dispose de 64 px de l'espace blanc en bas pour faire défiler. Les vues sont à la verticale UIPageViewController
, de sorte que cela perturbe la pagination. Est-il un moyen de se débarrasser de cet espace supplémentaire?
Voulez-vous le web afficher le contenu d'aller derrière la barre de navigation et la barre d'état? ou de la barre de navigation, faites défiler jusqu'à l'affichage web, derrière la barre d'état?
Lorsque vous faites défiler l'affichage web, je le veux glisser derrière le translucide barre de navigation et la barre d'état. (Je suis en train de le faire sur iOS 7, il est donc l'un des la nouvelle fantaisie floue, des barres de navigation, mais la façon dont UIWebView, le défilement est fait ne semble pas avoir changé.) J'ai mis en place le défilement avec le comportement avant, mais ce n'est pas ce que je cherche dans cette application.
oh. Je pense que je sais ce que vous voulez, ce n'est pas contentInset parce que déplace le contenu de la vue web. Si vous souhaitez que le web pour afficher derrière la barre de navigation et d'autres choses, vous définissez clipsToBounds PAS
Pourriez-vous faire bouillir jusqu'à un simple exemple de projet qui illustre le problème? Qui permettrait de faire la réparation il est beaucoup plus facile.
Lorsque vous faites défiler l'affichage web, je le veux glisser derrière le translucide barre de navigation et la barre d'état. (Je suis en train de le faire sur iOS 7, il est donc l'un des la nouvelle fantaisie floue, des barres de navigation, mais la façon dont UIWebView, le défilement est fait ne semble pas avoir changé.) J'ai mis en place le défilement avec le comportement avant, mais ce n'est pas ce que je cherche dans cette application.
oh. Je pense que je sais ce que vous voulez, ce n'est pas contentInset parce que déplace le contenu de la vue web. Si vous souhaitez que le web pour afficher derrière la barre de navigation et d'autres choses, vous définissez clipsToBounds PAS
Pourriez-vous faire bouillir jusqu'à un simple exemple de projet qui illustre le problème? Qui permettrait de faire la réparation il est beaucoup plus facile.
OriginalL'auteur Brent Royal-Gordon | 2013-06-28
Vous devez vous connecter pour publier un commentaire.
Qu'il semble que vous avez besoin est d'ajuster la webView.le scrollView.contentSize et régler la hauteur de 64. Vous pouvez avoir besoin de fournir plus d'informations sur la façon dont elle glisse derrière la barre de navigation et la barre d'état pour m'aider à répondre à cette question. Je voudrais prendre un coup d'oeil à cette section de Défilement de la Vue Guide de Programmation:
http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/UIScrollView_pg/CreatingBasicScrollViews/CreatingBasicScrollViews.html
contentSize
ne devrait changer que si la page est à moins d'un plein écran de haut, à droite? Comment puis-je déterminer qui?Eh bien, lorsque votre WebView des charges, le contentSize va probablement vous dire à quelle hauteur le contenu. Ça sonne plus comme vous avez besoin de définir la contentInset.bas = 64, ainsi.
OriginalL'auteur Chris Truman
Avez-vous essayé quelque chose comme le réglage de la webview de la scrollview contenu des encarts? Exemple:
OriginalL'auteur royherma
Changer le clipsToBounds.
Cela fera de son contenu visible à l'extérieur de son cadre, afin de définir son cadre, comme d'habitude, juste sous la barre de navigation. La barre de navigation est translucide et vous verrez son contenu sous.
Il ne faut pas, il ne marche pas permettre touche dans ces endroits, vous pouvez maintenant le voir, justs montre. et Ive jamais essayé de contrôleur de la page donc je ne sais pas, j'ai pensé que cela fonctionnerait.
Une autre voie pourrait être de définir votre vue-contrôleur de vouloir présentation en plein écran... puis aller à partir de là.
UIViewController
jeux declipsToBounds=YES
sur un ou plusieurs des points de vue qu'il gère... je ne me souviens pas si le réglage deviewController.wantsFullScreenLayout=YES
décide ou non.OriginalL'auteur Maximilian
N'oubliez pas de désactiver la mise en page automatique pour l'affichage web!
OriginalL'auteur KiRviz
J'ai fait une sorte de contourner ce problème en désactivant le défilement sur court des pages. En gros, j'utilise
-stringByEvaluatingJavaScriptFromString:
d'exécuter du JavaScript dans la page qui descend dedocument.body
et calcule la position du bas du dernier élément. (document.body
lui-même est toujours au moins aussi grande que la fenêtre d'affichage, donc je ne peux pas regarder sa taille.) Puis, de retour en Objective-C-terre, je la compare à la hauteur de la vue web (moins le médaillon), et si c'est moins, je désactiver le défilement. Ce n'est pas une solution parfaite, mais elle couvre les symptômes les plus graves.Si quelqu'un peut trouver une meilleure solution que celle-ci, je serais ravi de l'entendre! De toute façon, je ne peux pas le prix de la prime pour moi, si quelqu'un va être de se.
OriginalL'auteur Brent Royal-Gordon