如何在UIWebView中以编程方式滚动到底部? [英] How can I scroll programmatically to the bottom in a UIWebView?

查看:243
本文介绍了如何在UIWebView中以编程方式滚动到底部?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道之前已经提出类似的问题,但似乎从未得到过回答。我有一个UIWebView并按字符串添加一些内容。我使用UIWebView,因为我动态地添加了一些图像,并使用其他HTML功能。本实施例中的代码被简化。

I know a similar question has been asked before but it seemed never been answered. I have a UIWebView and add some content by string. I use UIWebView because I add some images to it dynamically and also use other HTML features. This example code is simplified.

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];

我想看到的是字符串的结尾。我可以在那里滚动,没问题。但是我想以编程方式去那里。

What I want to see is the end of the string. I can scroll there, no problem. But I want to go there programatically.

推荐答案

这很简单。首先,你需要获得网页的高度:

This is fairly simple. First, you'll need to obtain height of the webpage:

NSInteger height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] intValue];

现在您将文档的高度存储在高度变量中。要滚动到底部,您必须再次使用javascript:

Now you have the height of the document stored in the height variable. To scroll to bottom you have to use javascript again:

NSString* javascript = [NSString stringWithFormat:@"window.scrollBy(0, %d);", height];   
[webView stringByEvaluatingJavaScriptFromString:javascript];

当然,您需要在适当的时候给他们打电话。那是

Of course you need to call them in proper moment. That is

– webViewDidFinishLoad:(UIWebView *)webView

你的webview委托的方法。

method of your webview delegate.

希望这是有用的,
Pawel

Hope this was helpful, Pawel

这篇关于如何在UIWebView中以编程方式滚动到底部?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆