Как установить позицию прокрутки на uiwebview - PullRequest
15 голосов
/ 12 декабря 2011

Я хочу перейти, чтобы указать строку в моем загруженном uiwebview.Я пытался

[webView stringByEvaluatingJavaScriptFromString: @ "window.scrollTo (0.0, 100.0)"];

, но это не работаетМой веб-просмотр все еще начинается с верхней части страницы.Мне просто интересно, потому что я загружаю UIWebview внутри UIView.Проверьте мой код ниже на моем UIView:

- (void)loadView {
    webview = [[WebViewDetail alloc]initWithFrame:[UIScreen mainScreen].applicationFrame];        //initialize a mainView is a UIWebVIew
    webview.managedObjectContext = self.managedObjectContext;
    webview.kitab = self.kitab;
    webview.currentPasal = self.pasal;
    self.title = [NSString stringWithFormat:@"%@ %d", self.kitab, webview.currentPasal];
    self.view=webview;    //make the mainView as the view of this controller    
}

, и я поместил скрипт позиционирования прокрутки на мой UIWebView:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    int height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] intValue];

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

, в этом случае я хочу поместить свой uiwebviewперейти к нижней части страницы, когда представление загружено.Но это совершенно не работает, почему?Я делаю это неправильно?

Ответы [ 2 ]

19 голосов
/ 12 декабря 2011

Попробуйте

webview.scrollView.contentOffset = CGPointMake(0, 100);
6 голосов
/ 11 мая 2014

Убедитесь, что вы установили контроллер представления, где у вас есть веб-представление, равным UIWebViewDelegate, и объявите это в @interface файла заголовка (.h).

[yourWebView setDelegate:self];



Затем в методе webViewDidFinishLoad: вставьте этот код:

[yourWebView.scrollView scrollRectToVisible:CGRectMake(0, yourWebView.bounds.size.height + 100, 1, 1) animated:NO];           
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...