12

尝试了这个论坛和其他论坛的许多建议,包括将“DisallowOverscroll”设置为“true”。这是在phonegap 3.0中被破坏的吗?

4

5 回答 5

44

进行某些更改config.xml

如果您将其用于 Android,请使用

<preference name="disallowOverscroll" value="true" />

<preference name="webviewbounce" value="false" />

对于IOS,使用like

<preference name="DisallowOverscroll" value="true" />

<preference name="webviewbounce" value="false" />

希望这对您有所帮助。

编辑

cordova build在您对文件进行更改后执行 a ,config.xml以便更改影响您的项目。只有在您执行上述步骤后,上述步骤才能解决您的问题cordova build

于 2013-09-14T07:48:58.123 回答
8

在文件 AppDelegate.h 中,初始化 MainViewController 后,您可以通过在 webview 中设置 scrollView 类来禁用此弹跳:

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
    ....................

    self.viewController.webView.scrollView.bounces = NO;
    return YES;
}

config.xml文件中的配置值没有使用,我在Cordova项目中搜索了所有。

于 2014-01-13T16:28:35.690 回答
1

这是我在 xcode 方式中使用的方法。我不知道如何在 phonegap 中解决这个问题,也许这几个代码给了你想法

在 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);

}

于 2013-09-14T08:20:47.427 回答
1

对于 Cordova 3.x 及更高版本,我相信您可以(void)webViewDidFinishLoadMainViewController.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];
}

已测试:Cordova 3.4、3.5。

于 2014-09-08T04:08:50.250 回答
0

在您的 AppDelegate.m 文件中,“(UIApplication*)application 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's 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's 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; 之前返回YES;

于 2015-04-16T18:04:41.163 回答