iAd 横幅无法正确加载
iAd Banner won't load correctly
我遵循了有关如何在我的应用程序中实施共享 iads 横幅的 youtube 教程。我有 10 VC,所以这就是我通过委托选择共享 iads 的原因。每当我启动应用程序(在设备或模拟器上)时,广告都不会出现在第一个视图控制器上。如果我切换到第二个 VC,它将正确加载和显示。然后,如果我决定去第三个 VC 或回到第一个 VC,横幅将是白色的并且不会加载任何广告(即使我等待或去任何其他 VC ).
也许我看的教程写得不正确,老实说我不知道。这是使用的代码:
AppDelegate.h
@property (strong, nonatomic) ADBannerView *UIiAD;
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
_UIiAD = [[ADBannerView alloc] init];
return YES;
}
ViewController.h
@property (strong, nonatomic) ADBannerView *UIiAD;
ViewController.m
- (AppDelegate *) appdelegate {
return (AppDelegate *)[[UIApplication sharedApplication] delegate];
}
-(void) viewWillAppear:(BOOL)animated{
_UIiAD = [[self appdelegate] UIiAD];
_UIiAD.delegate = self;
if ((int)[[UIScreen mainScreen] bounds].size.height == 568)
{
[_UIiAD setFrame:CGRectMake(0,518,320,50)];
}
if ((int)[[UIScreen mainScreen] bounds].size.height == 480)
{
[_UIiAD setFrame:CGRectMake(0,430,320,50)];
}
if ((int)[[UIScreen mainScreen] bounds].size.height == 667)
{
[_UIiAD setFrame:CGRectMake(0,600,320,50)];
}
if ((int)[[UIScreen mainScreen] bounds].size.height == 736)
{
[_UIiAD setFrame:CGRectMake(0,660,320,50)];
}
[self.view addSubview:_UIiAD];
}
-(void) viewWillDisappear:(BOOL)animated{
[_UIiAD removeFromSuperview];
_UIiAD.delegate = nil;
_UIiAD = nil;
}
-(void)bannerViewDidLoadAd:(ADBannerView *)banner{
NSLog(@"ads loaded");
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0];
[_UIiAD setAlpha:1];
[UIView commitAnimations];
self.fullscreen = [[RevMobAds session] fullscreen];
self.fullscreen.delegate = self;
[self.fullscreen loadAd];
}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
NSLog(@"ads not loaded");
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0];
[_UIiAD setAlpha:0];
[UIView commitAnimations];
}
结论
我尝试在 ViewWillAppear 方法中添加延迟,但没有成功。
我将横幅放在故事板中并确保它处于 0 alpha 状态。
没有其他关于 SO 的答案对我有帮助,所以希望有人能够解决这个问题。谢谢!
为了结束我的评论,
- 使用故事板自动布局定位横幅或使用占位符获取后面横幅的位置。
- 删除动画并替换为
.hidden=true
和 =false
。
- 在情节提要中或在初始化时将广告横幅设置为
hidden
。
我遵循了有关如何在我的应用程序中实施共享 iads 横幅的 youtube 教程。我有 10 VC,所以这就是我通过委托选择共享 iads 的原因。每当我启动应用程序(在设备或模拟器上)时,广告都不会出现在第一个视图控制器上。如果我切换到第二个 VC,它将正确加载和显示。然后,如果我决定去第三个 VC 或回到第一个 VC,横幅将是白色的并且不会加载任何广告(即使我等待或去任何其他 VC ). 也许我看的教程写得不正确,老实说我不知道。这是使用的代码:
AppDelegate.h
@property (strong, nonatomic) ADBannerView *UIiAD;
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
_UIiAD = [[ADBannerView alloc] init];
return YES;
}
ViewController.h
@property (strong, nonatomic) ADBannerView *UIiAD;
ViewController.m
- (AppDelegate *) appdelegate {
return (AppDelegate *)[[UIApplication sharedApplication] delegate];
}
-(void) viewWillAppear:(BOOL)animated{
_UIiAD = [[self appdelegate] UIiAD];
_UIiAD.delegate = self;
if ((int)[[UIScreen mainScreen] bounds].size.height == 568)
{
[_UIiAD setFrame:CGRectMake(0,518,320,50)];
}
if ((int)[[UIScreen mainScreen] bounds].size.height == 480)
{
[_UIiAD setFrame:CGRectMake(0,430,320,50)];
}
if ((int)[[UIScreen mainScreen] bounds].size.height == 667)
{
[_UIiAD setFrame:CGRectMake(0,600,320,50)];
}
if ((int)[[UIScreen mainScreen] bounds].size.height == 736)
{
[_UIiAD setFrame:CGRectMake(0,660,320,50)];
}
[self.view addSubview:_UIiAD];
}
-(void) viewWillDisappear:(BOOL)animated{
[_UIiAD removeFromSuperview];
_UIiAD.delegate = nil;
_UIiAD = nil;
}
-(void)bannerViewDidLoadAd:(ADBannerView *)banner{
NSLog(@"ads loaded");
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0];
[_UIiAD setAlpha:1];
[UIView commitAnimations];
self.fullscreen = [[RevMobAds session] fullscreen];
self.fullscreen.delegate = self;
[self.fullscreen loadAd];
}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
NSLog(@"ads not loaded");
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0];
[_UIiAD setAlpha:0];
[UIView commitAnimations];
}
结论
我尝试在 ViewWillAppear 方法中添加延迟,但没有成功。 我将横幅放在故事板中并确保它处于 0 alpha 状态。 没有其他关于 SO 的答案对我有帮助,所以希望有人能够解决这个问题。谢谢!
为了结束我的评论,
- 使用故事板自动布局定位横幅或使用占位符获取后面横幅的位置。
- 删除动画并替换为
.hidden=true
和=false
。 - 在情节提要中或在初始化时将广告横幅设置为
hidden
。