我一整天都在研究这个问题,就是无法解决这个问题。我试图加载一个网页,并完成加载后自动滚动到一个预定的点。我一直在阅读这样的教程http://iphoneincubator.com/blog/windows-views/how-to-inject-javascript-functions-into-a-uiwebview,但仍然没有运气。
这是我的电脑出现问题的地方。我走投无路了,请帮帮我!此外,它告诉我,我的webViewDidFinishLoad正在覆盖实例变量,但这应该不是一个问题,我相信
- (void)viewDidLoad {
[super viewDidLoad];
NSString *urlAddress = @"http://www.twitter.com/richrines";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
// Do any additional setup after loading the view from its nib.
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = "function myFunction() { "
"window.scrollTo(100,100)"
"}";"
"document.getElementsByTagName('head')[0].appendChild(script);"];
[webView stringByEvaluatingJavaScriptFromString:@"myFunction();"];
}
你为什么用这么复杂的方式做这件事?这应该是你所需要的:
[webView stringByEvaluatingJavaScriptFromString:@"window.scrollTo(100,100)"];
这对我来说是完美的,但不包括javascript:
确保你将你的web视图所在的视图控制器设置为UIWebViewDelegate
,并在头文件(.h)的@interface
中声明。
[yourWebView setDelegate:self];
然后,在webViewDidFinishLoad:
方法中,插入以下代码:
[yourWebView.scrollView scrollRectToVisible:CGRectMake(0, yourWebView.bounds.size.height + 100, 1, 1) animated:NO];
你不能改变webView的scrollView属性的偏移量吗?
[webView.scrollView setContentOffset:CGPointMake(100, 100)];