【问题标题】:AdMob 6.12.0 - Prevent Scrolling (iOS)AdMob 6.12.0 - 防止滚动 (iOS)
【发布时间】:2014-10-03 14:11:52
【问题描述】:
- (void)preventGADBannerViewBounceScrolling:(GADBannerView*)bannerView {
    for (UIWebView *webView in bannerView.subviews) {
        if ([webView isKindOfClass:[UIWebView class]]) {
            webView.scrollView.scrollEnabled = NO;
            webView.scrollView.bounces = NO;
        }
    }
}

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

我刚刚将 SDK 更新到最新版本 (6.12.0) 并拥有此代码并使用以下代码调用它...

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

在最新的 SDK 上什么都不做,我想知道是否有人遇到过这个问题并解决了它?

另外,在这个主题上,我注意到一些开发人员已经制作了横幅,所以如果用户点击它,它会在应用程序的 Web 视图中打开,并且在右上角有一个“完成”按钮,所以用户可以这样做当他们按下应用内广告时没有完全离开应用程序,我认为这是天才......

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

【问题讨论】:

    标签: ios xcode admob banner


    【解决方案1】:

    看起来UIWebView在新的SDK中被封装到了另外一个视图中,所以最好遍历整个子视图树:

    - (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;
        }];
    }
    

    当然,这也不是面向未来的解决方案,我希望 SDK 中有相应的属性。

    【讨论】:

    • 非常感谢你。在最新的 SDK 上完美运行!
    【解决方案2】:

    我选择了 aleh 答案的非阻塞版本,我发现它更容易阅读:

    - (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;
        }
    }
    

    我知道我不会有任何滚动广告,但如果有,请禁用弹跳而不是滚动。如果你投票赞成我的回答,请考虑也给 aleh 投票!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 2014-05-18
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多