我正在尝试使用 Burstly 将 iAds 和 adMob 广告投放到我的 iPhone 应用程序中。我跟着他们的向导
http://docs.burstly.com/guides/ad-serving-quick-start-guide.html
这是我所拥有的一个片段......
MyViewController.h
@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, OAIAdManagerDelegate> {
OAIAdManager *adManager;
IBOutlet UIView *mainView;
}
@property (nonatomic, retain) UIView *mainView;
@end
我的视图控制器.m
#import "MyViewController.h"
@implementation MyViewController
@synthesize mainView;
- (void)viewDidLoad {
[super viewDidLoad];
adManager = [[OAIAdManager alloc] initWithDelegate:self];
[self.view addSubview:adManager.view];
[adManager requestRefreshAd];
}
- (UIViewController *)viewControllerForModalPresentation {
return self;
}
- (CGFloat)defaultSessionLife {
return 35.0f;
}
- (Anchor)anchor {
return Anchor_Bottom;
}
- (CGPoint)anchorPoint {
return CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height);
}
- (NSString *)publisherId {
return @"ENTER YOUR PUBLISHER ID HERE";
}
- (NSString *)getZone {
return @"ENTER YOUR ZONE ID HERE";
}
- (UIViewController *)viewControllerForModalPresentation {
return self;
}
// resize mainView (pull up) when ad is displayed
- (void)adManager:(OAIAdManager*)manager didLoad:(NSString*)aNetwork {
[UIView beginAnimations:@"AdResize" context:nil];
[UIView setAnimationDuration:0.7];
CGRect mainViewNewFrame = mainView.frame;
mainViewNewFrame.size.height = 460 - adSize;
mainViewNewFrame.size.width = 320;
mainViewNewFrame.origin.x = 0;
mainViewNewFrame.origin.y = 0;
mainView.frame = mainViewNewFrame;
[UIView commitAnimations];
}
// resize MainView when ad is not available
- (void)adManager:(OAIAdManager*)manager failedToLoad:(NSString*)aNetwork {
[UIView beginAnimations:@"AdResize" context:nil];
[UIView setAnimationDuration:0.7];
CGRect mainViewNewFrame = mainView.frame;
mainViewNewFrame.size.height = 460;
mainViewNewFrame.size.width = 320;
mainViewNewFrame.origin.x = 0;
mainViewNewFrame.origin.y = 0;
mainView.frame = mainViewNewFrame;
[UIView commitAnimations];
}
我无法准确了解广告何时显示,以便我可以知道重新排列我的视图。我有一个触摸屏幕底部的表格视图,因此在显示广告时我需要将其拉起(调整视图大小)。
我尝试使用 OAIAdManagerDelegateProtocol "adManager:didLoad:" 方法,但结果好坏参半。当广告经理认为它有广告时,总是调用该方法,但有时广告没有显示(尤其是第一次调用 iAd)。因此,当调用该方法时,我总是调整主视图的大小以便为广告腾出空间,但有时广告不在那里显示,所以我最终显示了一个与广告大小相同的空白区域。
我也尝试使用“adManager:didLoadView:”方法,但它从未被调用过。
那么,当 adManager.view 显示在屏幕上时,是否有其他方法可以通知我,以便我知道何时调整视图大小?