Попробовали много предложений с этого и других форумов, включая установку "DisallowOverscroll" на "true". Разве это сломано в phonegap 3.0 случайно?
Как остановить UIWebView, подпрыгивая вертикально в телефонной таблице 3.0
Ответ 1
Внесите определенные изменения в config.xml
,
Если вы используете его для Android, используйте
<preference name="disallowOverscroll" value="true" />
<preference name="webviewbounce" value="false" />
И для IOS используйте, например,
<preference name="disallowOverscroll" value="true" />
<preference name="webviewbounce" value="false" />
Надеюсь, это поможет вам.
ИЗМЕНИТЬ
Сделайте cordova build
после внесения изменений в файл config.xml
, чтобы изменения повлияли на ваш проект. Вышеупомянутые шаги помогут решить вашу проблему только после того, как вы выполните cordova build
Ответ 2
В файле AppDelegate.h после инициализации MainViewController вы можете отключить это отключение, задав класс scrollView внутри webview:
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
....................
self.viewController.webView.scrollView.bounces = NO;
return YES;
}
Значение конфигурации в файле config.xml не использовалось, я искал все в проекте Кордовы.
Ответ 3
это метод, который я использовал в xcode. Я не знаю, как решить эту проблему в телефоне возможно, это несколько кодов дают вам идею
in viewdidload:
webView.scrollView.delegate = self;
[webView.scrollView setShowsHorizontalScrollIndicator:NO];
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.x > 0 || scrollView.contentOffset.x < 0 )
scrollView.contentOffset = CGPointMake(scrollView.contentOffset.y, 0);
}
Ответ 4
Для Кордовы 3.x и выше я считаю, что вы можете настроить (void)webViewDidFinishLoad
в MainViewController.m
следующим образом:
- (void)webViewDidFinishLoad:(UIWebView*)theWebView {
// Black base color for background matches the native apps
theWebView.backgroundColor = [UIColor blackColor];
theWebView.scrollView.bounces = NO;
return [super webViewDidFinishLoad:theWebView];
}
Протестировано: Кордова 3.4, 3.5.
Ответ 5
В вашем файле AppDelegate.m приложение "(UIApplication *) didFinishLaunchingWithOptions.." должно выглядеть следующим образом:
/**
* This is main kick off after the app inits, the views and Settings are setup here. (preferred - iOS4 and up)
*/
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
CGRect screenBounds = [[UIScreen mainScreen] bounds];
#if __has_feature(objc_arc)
self.window = [[UIWindow alloc] initWithFrame:screenBounds];
#else
self.window = [[[UIWindow alloc] initWithFrame:screenBounds] autorelease];
#endif
self.window.autoresizesSubviews = YES;
#if __has_feature(objc_arc)
self.viewController = [[MainViewController alloc] init];
#else
self.viewController = [[[MainViewController alloc] init] autorelease];
#endif
// Set your app start page by setting the <content src='foo.html' /> tag in config.xml.
// If necessary, uncomment the line below to override it.
// self.viewController.startPage = @"index.html";
// NOTE: To customize the view frame size (which defaults to full screen), override
// [self.viewController viewWillAppear:] in your view controller.
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
self.viewController.webView.scrollView.bounces = NO;
return YES;
}
Просто добавьте self.viewController.webView.scrollView.bounces = NO;, прежде чем вернется ДА;