我创建了一个名为 AdMobViewController 的类,并使用该类添加横幅。横幅创建但 View 中的其他对象不向上滚动。我如何以编程方式向上 ScrollView 中的所有对象。
我的 AdMobViewController 类和方法:
+ (void)createBanner:(UIViewController *)sender
{
GADRequest *request = [GADRequest request];
request.testing = YES;
request.testDevices = [NSArray arrayWithObjects:GAD_SIMULATOR_ID, nil];
GADBannerView *bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
bannerView.adUnitID = @"ca-app-pub-123456";
bannerView.rootViewController = (id)self;
bannerView.delegate = (id<GADBannerViewDelegate>)self;
bannerView.frame = CGRectMake(0, 518, 320, 50);
[bannerView loadRequest:request];
[sender.view addSubview:bannerView];
}
我用来创建横幅:
[AdMobViewController createBanner:self];
最佳答案
工作示例副本在这里:
使用:[AdMobViewController createBanner:self];
#import "AdMobViewController.h"
#import "GADBannerView.h"
@interface AdMobViewController ()
@end
@implementation AdMobViewController
static GADBannerView *bannerView;
static UIView *senderView;
static UIView *containerView;
static UIView *bannerContainerView;
static float bannerHeight;
+ (void)createBanner:(UIViewController *)sender
{
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone)
{
bannerHeight = 50;
}
else
{
bannerHeight = 90;
}
GADRequest *request = [GADRequest request];
request.testDevices = [NSArray arrayWithObjects:GAD_SIMULATOR_ID, nil];
bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
bannerView.adUnitID = @"ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx";
bannerView.rootViewController = (id)self;
bannerView.delegate = (id<GADBannerViewDelegate>)self;
senderView = sender.view;
bannerView.frame = CGRectMake(0, 0, senderView.frame.size.width, bannerHeight);
[bannerView loadRequest:request];
containerView = [[UIView alloc] initWithFrame:senderView.frame];
bannerContainerView = [[UIView alloc] initWithFrame:CGRectMake(0, senderView.frame.size.height, senderView.frame.size.width, bannerHeight)];
for (id object in sender.view.subviews) {
[object removeFromSuperview];
[containerView addSubview:object];
}
[senderView addSubview:containerView];
[senderView addSubview:bannerContainerView];
}
+ (void)adViewDidReceiveAd:(GADBannerView *)view
{
[UIView animateWithDuration:0.5 animations:^{
containerView.frame = CGRectMake(0, 0, senderView.frame.size.width, senderView.frame.size.height - bannerHeight);
bannerContainerView.frame = CGRectMake(0, senderView.frame.size.height - bannerHeight, senderView.frame.size.width, bannerHeight);
[bannerContainerView addSubview:bannerView];
}];
}
@end
关于ios - 以编程方式添加 GADBannerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21760071/