AdMob 6.12.0-防止滚动(iOS)
我一直在使用上述代码来阻止AdMob横幅滚动 我刚刚将SDK更新为最新版本(6.12.0),并使用以下代码调用它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]]) {
- (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;
}
}