Проблема установки смещения UIwebView - PullRequest
3 голосов
/ 16 сентября 2009

Я использую UIWebView (загруженный с файлом HTML), и я хочу, чтобы смещение прокручиваемой позиции и смещение оставалось постоянным, если я изменяю размер текста. Я хочу сохранить ранее прокрученную позицию, даже если я изменяю размер текста . КАК это сделать ????

Ответы [ 3 ]

3 голосов
/ 28 октября 2009

Для получения текущего смещения используйте:

int pageYOffset = [[webView stringByEvaluatingJavaScriptFromString:@"window.pageYOffset"] intValue];

Для настройки смещения страницы используйте:

    [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.body.scrollTop = %d", 100]];
2 голосов
/ 02 февраля 2010

У меня есть другой метод, который я нашел в http://www.alexnking.com/2008/10/14/going-back-to-the-last-place-you-were-in-a-uiwebview/,, который может быть очень полезен, если вы хотите прокрутить UIWebView вручную.

Чтобы получить текущую позицию прокрутки (по вертикали):

[myWebView stringByEvaluatingJavaScriptFromString: @"scrollY"];

// Application is terminating.

- (void)applicationWillTerminate:(UIApplication *)application {

  [[NSUserDefaults standardUserDefaults] setInteger:
    [[myWebView stringByEvaluatingJavaScriptFromString: @"scrollY"]
      intValue] forKey: @"currentScroll"];
}

// Application is loading.

- (void)applicationDidFinishLaunching:(UIApplication *)application {

 initialScrollPosition = [[NSUserDefaults standardUserDefaults]
                                integerForKey: @"currentScroll"];
}

// WebView is finished loading

- (void)webViewDidFinishLoad:(UIWebView *)webView {

  // Check if we need to scroll this somewhere.

  if (initialScrollPosition != 0) {

    // Scroll to the position.

    [passageView stringByEvaluatingJavaScriptFromString:
      [NSString stringWithFormat: @"window.scrollTo(0, %d);",
      self.initialScrollPosition]]; 

    // Set the initial scroll value to zero so we don't try

    // to scroll to it again if the user navigates to another page.

    self.initialScrollPosition = 0;

  }

}
1 голос
/ 28 октября 2009

Для получения общей прокручиваемой высоты страницы

int scrollHeight = [[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollHeight"] intValue];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...