10
votes

Comment puis-je faire défiler la programmation par programmation vers le bas dans une UIWebView?

Je sais qu'une question similaire a été posée auparavant, mais cela semblait n'avoir jamais été répondu. J'ai un uiWebView et ajoutez du contenu par chaîne. J'utilise uiWebView car j'ajoute des images de manière dynamique et utilise également d'autres fonctionnalités HTML. Cet exemple de code est simplifié.

NSString *myHtmlString = @"SOME LONG TEST STRING 1234567890 123456789 0123456789 0123456789 0123456789 01234567890 WWWWWWWWWW WWWWWWWWWW WWWYYYYYYY YYYYYYYYYY YYYYYYYYYY YYYYYYYYYY YYYYYYYYYY YYYYYYYYY YYYYYYYWWW WWWWWWWWWW WWWWWWWWWW WWWXXXXXXX XXXXXXXXXX XXXZZZZZZZ THIS IS THE END I WANT TO SEE";
NSString *myPath = [[NSBundle mainBundle] bundlePath];
NSURL *myBaseURL = [NSURL fileURLWithPath:myPath];
[myWebView loadHTMLString:myHtmlString baseURL:myBaseURL];


0 commentaires

4 Réponses :


26
votes

C'est assez simple. Tout d'abord, vous aurez besoin d'obtenir une hauteur de la page Web:

– webViewDidFinishLoad:(UIWebView *)webView


4 commentaires

D'accord. Je l'ai fait travailler. Le point est que cela doit être fait dans "le" Webviewelegate. Je n'avais aucune opinion Web Délégée alors j'ai écrit une classe et mettre en œuvre la webviewelegate. J'ai mis au-dessus de code (NB: cela devrait être "Window.scrollby (0,% d)") et cela a fonctionné. Il est vraiment important de le faire après la fin de la charge.


La webviewDidfinishloadload toujours est toujours appelée après la vision WebView terminée en chargement de la page, vous êtes donc complétiement sûr. :) J'ai corrigé le code, merci pour le conseil!


Vous ne pouvez pas simplement faire défiler jusqu'au NsintGermax ? Vous faites maintenant défiler la page offScreen, comme vous faites défiler vers {0, pageHeight} ne laissant donc pas de contenu à afficher (il aurait dû être {0, pageHeight - webviewheight} < / code>). Comme il ne fait pas défiler l'écran, cela signifie que le navigateur limite la position de défilement et que vous pouvez donc passer nsintgermax


Si vous affichez un document PDF ou un autre document dans votre UIWebView, le document.body.OffSetheight est présenté ci-dessus ne renvoie pas de valeur. Cependant, vous pouvez utiliser Window.Leterheight and window.innerheight, comme indiqué ici: Stackoverflow.com/questions/1927841/...



9
votes

dans iOS 5+ Vous pouvez appeler la méthode suivante à partir de votre - (void) webviewLoadload: (uiwebview *) webview xxx


0 commentaires

4
votes

C'est ainsi que vous pouvez faire défiler animé : xxx


0 commentaires

1
votes

SWIFT 4.x

C'est ainsi que vous pouvez faire défiler animé : xxx


0 commentaires