سؤال

وأنا باستخدام UIWebView (محملة ملف HTML) وأريد إزاحة موقف تمريره، وينبغي أن تظل ثابتة إذا يمكنني تغيير النص size.I الإزاحة تريد تخزين موقف تمريره من قبل حتى لو كنت تغيير حجم الخط . كيفية القيام بذلك ؟؟؟؟

هل كانت مفيدة؟

المحلول

ولدي طريقة أخرى التي وجدت على الموقع 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;

  }

}

نصائح أخرى

لتحصل على استخدام إزاحة الحالي:

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

لتحديد الصفحة استخدام إزاحة:

    [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.body.scrollTop = %d", 100]];

لتحصل على ارتفاع إجمالي تمرير الصفحة

int scrollHeight = [[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollHeight"] intValue];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top