gpt4 book ai didi

iphone - AdMob 广告未显示在 UIView iPhone 中

转载 作者:行者123 更新时间:2023-11-29 11:07:15 25 4
gpt4 key购买 nike

我想在我的应用中使用 AdMob 横幅!我让它在 UIViewcontrollers 中工作,但在我的 UIView 中不起作用...横幅显示但当您单击它时,没有任何反应!如果您单击 UIViewcontrollers 中的横幅,它会起作用!

UIViewcontrollers 中的代码(有效!)

 - (void)viewDidLoad
{

[super viewDidLoad];
bannerView_ = [[GADBannerView alloc] initWithFrame:CGRectMake(0.0, self.view.frame.size.height - GAD_SIZE_320x50.height-49, GAD_SIZE_320x50.width, GAD_SIZE_320x50.height)];

bannerView_.adUnitID = MY_BANNER_UNIT_ID;
bannerView_.rootViewController = self;
[self.view addSubview:bannerView_];


GADRequest *r = [[GADRequest alloc] init];
r.testing = YES;
[bannerView_ loadRequest:r];
// Do any additional setup after loading the view, typically from a nib.

}

UiView 中的代码:(不起作用)

 - (void)drawRect:(CGRect)rect
{




// Create a view of the standard size at the bottom of the screen.
bannerView_ = [[GADBannerView alloc] initWithFrame:CGRectMake(0.0, self.frame.size.height - GAD_SIZE_320x50.height, GAD_SIZE_320x50.width, GAD_SIZE_320x50.height)];
// Specify the ad's "unit identifier." This is your AdMob Publisher ID.
bannerView_.adUnitID = MY_BANNER_UNIT_ID;

// Let the runtime know which UIViewController to restore after taking
// the user wherever the ad goes and add it to the view hierarchy.
bannerView_.rootViewController = self;
[self addSubview:bannerView_];

// Initiate a generic request to load it with an ad.
[bannerView_ loadRequest:[GADRequest request]];
// Drawing code
}

行 bannerView_.rootViewController = self;给我一个警告,但没有它是行不通的!警告说“从‘blandad *const_strong’分配给‘UIViezController *’的不兼容指针类型

UIView 的 .m 和 .h 文件的名称很乏味!

你觉得哪里不对?

/一个菜鸟

最佳答案

请从 - (void)drawRect:(CGRect)rect 方法中删除所有代码,如果您想在图形上下文中绘制某些内容,则必须覆盖此方法。这个方法不会被调用一次,而是会被调用很多次,所以每次你都会分配一个新的 View 并将其添加为 subview

如果您想将广告横幅添加到自定义 UIView,只需执行以下操作:

// in your CustomView implementation
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {

bannerView_ = [[GADBannerView alloc] initWithFrame:CGRectMake(0.0, self.view.frame.size.height - GAD_SIZE_320x50.height-49, GAD_SIZE_320x50.width, GAD_SIZE_320x50.height)];

bannerView_.adUnitID = MY_BANNER_UNIT_ID;

UIViewController* root = [(YOUR_APP_DELEGATE_CLASS*)[[UIApplication sharedApplication] delegate] viewController];
bannerView_.rootViewController = root;
[self addSubview:bannerView_];


GADRequest *r = [[GADRequest alloc] init];
r.testing = YES;
[bannerView_ loadRequest:r];

}
return self;
}

您可以使用您拥有的任何 Controller 设置 UIViewController* root,最好在那里设置一个 Controller ,该 Controller 的 View 是您自定义 View 的父 View 。我刚刚从应用程序委托(delegate)中为 Root View Controller 编写了一个路径,如果你想使用它,请确保你的应用程序委托(delegate)具有此 viewController 属性。

关于iphone - AdMob 广告未显示在 UIView iPhone 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13072408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com