Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AdMob 6.12.0-防止滚动(iOS)_Ios_Xcode_Admob_Banner - Fatal编程技术网

AdMob 6.12.0-防止滚动(iOS)

AdMob 6.12.0-防止滚动(iOS),ios,xcode,admob,banner,Ios,Xcode,Admob,Banner,我一直在使用上述代码来阻止AdMob横幅滚动 我刚刚将SDK更新为最新版本(6.12.0),并使用以下代码调用它 - (void)preventGADBannerViewBounceScrolling:(GADBannerView*)bannerView { for (UIWebView *webView in bannerView.subviews) { if ([webView isKindOfClass:[UIWebView class]]) {

我一直在使用上述代码来阻止AdMob横幅滚动

我刚刚将SDK更新为最新版本(6.12.0),并使用以下代码调用它

- (void)preventGADBannerViewBounceScrolling:(GADBannerView*)bannerView {
    for (UIWebView *webView in bannerView.subviews) {
        if ([webView isKindOfClass:[UIWebView class]]) {
            webView.scrollView.scrollEnabled = NO;
            webView.scrollView.bounces = NO;
        }
    }
}
在最新的SDK上什么都没有,我想知道是否有人有这个问题并解决了它

此外,在这个问题上,我注意到一些开发人员制作了他们的横幅,因此如果用户单击,它将在应用程序内的web视图中打开,并且在右角有一个“完成”按钮,以便用户在按下应用程序内广告时不会完全离开应用程序,我认为这是天才


如果有人能告诉我这是怎么做到的,我将不胜感激

在新SDK中,UIWebView似乎被包装到了另一个视图中,因此最好遍历整个子视图树:

[self.view addSubview:self.adMobBannerView]; 
[self preventGADBannerViewBounceScrolling:(GADBannerView *)_adMobBannerView];

当然,这也不是一个经得起未来考验的解决方案,我更希望SDK中有相应的属性。

我使用了aleh答案的非块版本,我发现它更容易阅读:

- (void)walkSubviewsOfView:(UIView *)v block:(void (^)(UIView *))block {
    block(v);
    for (UIView *subview in v.subviews) {
        [self walkSubviewsOfView:subview block:block];
    }
}

- (void)disableBannerWebViewBouncing {
    [self walkSubviewsOfView:_bannerView block:^(UIView *v) {
        for (UIGestureRecognizer *r in v.gestureRecognizers) {
            if ([NSStringFromClass(r.class) isEqual:@"UIWebTouchEventsGestureRecognizer"])
                    r.enabled = NO;
        }
        if ([v isKindOfClass:[UIScrollView class]])
            ((UIScrollView *)v).bounces = NO;
    }];
}

我知道我不会有任何滚动广告,但如果你有,只是禁用反弹,而不是滚动。如果你对我的答案投了赞成票,请考虑给予一个赞成票!p> 非常感谢你,阿莱。适用于最新的SDK!
- (void)removeScrollingFromView:(UIView *)view
{
    for (UIView *subview in view.subviews) {
        [self removeScrollingFromView:subview];
    }
    if ([view isKindOfClass:[UIWebView class]]) {
        ((UIWebView *)view).scrollView.scrollEnabled = NO;
        ((UIWebView *)view).scrollView.bounces = NO;
    }
}