一个支持显示 GIF、静态图,自定义广告视图 frame,自带图片下载、缓存,支持自定义广告结束转场动画,支持 iPhone、iPad 的开机启动广告。
显示广告过程中的回调通过 delegate,共有五个回调方法,使用 delegate 比 block 代码更加清晰,有更好的阅读性,虽然会多写几行代码。
@required
(void)yk_willLoadAd:(YKLaunchAd *)launchAd
第一个回调方法,当调用 [start] 方法后开始执行,在此方法内从服务器获取广告数据,例如:url。然后调用 launchAd 的 setDataImageUrl 方法。
- (void)yk_willLoadAd:(YKLaunchAd *)launchAd {
// requestAdData表示从服务器请求广告数据
[self requestAdData:^(NSString *imgUrl, NSInteger duration) {
[launchAd setImageUrl:imgUrl countdown:duration skipType:YKSkipTypeTimerText options:YKWebImageUseNSURLCache ];
}];
}
(void)yk_requestAdImageFinished:(YKLaunchAd *)launchAd adImage:(UIImage *)adImage adUrl:(NSURL *)adUrl
下载广告图完成后调用,在这里做修改 adImage、countdown、adFrame 等。
(void)yk_willAdCountdownEnding
倒计时结束回调,在此方法内进行界面跳转等操作。
@optional
(void)yk_didAdClicked
点击广告视图回调,在此方法内跳转到广告页面。
(void)yk_customAdEndingAnimations:(void(^)())animations
此方法可以自定义广告结束后的转场动画,默认动画是 UIViewAnimationOptionTransitionCrossDissolve。
adFrame
默认值是 [UIScreen mainScreen].bounds。如果设置 adFrame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 100);
countdown
广告显示倒计时,默认值为 3。例如在初始化的时候 countdown = 3,如果从服务器获取数据的时间大于 3 秒,会直接调用 yk_willAdCountdownEnding
方法结束广告显示;如果从服务器获取数据的时间小于 3 秒,比如花费了一秒钟,如果不刷新 countdown,倒计时按钮显示的数字为 2。
adClickCountdownEnding
默认值为 YES。adClickCountdownEnding=YES
,当从广告页返回后,无论 countdown 是否为 0,都会调用 yk_willAdCountdownEnding
;adClickCountdownEnding=NO
,如果 countdown > 0,会继续倒计时,直到 countdown==0 时,再调用 yk_willAdCountdownEnding
。
launchScreenName launchScreen.storyboard 的文件名。默认从 Assets 中读取启动图作为从服务器获取广告数据时的占位图。当启动图需要从 launchScreen.storyboard 读取时进行赋值。
(void)start
开始倒计时。调用此方法后,开始执行 yk_willLoadAd:(YKLaunchAd *)launchAd
方法
(void)setImageUrl:(NSString *)imageUrl
countdown:(NSInteger)countdown
skipType:(YKSkipType)skipType
options:(YKWebImageOptions)options
加载广告图。从服务器获取数据后调用。
YKLaunchAd *launchAd = [[YKLaunchAd alloc] init];
launchAd.delegate = self;
[launchAd start];