app 在启动的时候会加载启动图片,我们怎么样去做一个广告页面呢?
思路:在启动完毕后,创建一个加载广告的控制器,然后等广告结束后,我们在去加载主框架内容
如图:
首先我们先创建一个AD的控制器
@interface ABADViewController () @property (weak, nonatomic) IBOutlet UIButton *ADJumpBtn; //跳过 按钮 @property (weak, nonatomic) IBOutlet UIImageView *ADImageView; //加载界面的图片 @property (weak, nonatomic) IBOutlet UIView *ADView; @property (nonatomic, weak) UIImageView *imageView; //加载广告的图片 @property (nonatomic, strong) ABADModel *model; @property (nonatomic, weak) NSTimer *timer; @end @implementation ABADViewController - (UIImageView *)imageView{ if (_imageView == nil) { UIImageView *imageView = [[UIImageView alloc] init]; _imageView = imageView; [self.ADView addSubview:imageView]; _imageView.userInteractionEnabled = YES; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap)]; //添加手势 [imageView addGestureRecognizer:tap]; } return _imageView; } - (void)tap{ UIApplication *app = [UIApplication sharedApplication]; if ([app canOpenURL:[NSURL URLWithString:@"http://sina.cn/?wm=4007"]]) { [app openURL:[NSURL URLWithString:@"http://sina.cn/?wm=4007"]]; } } - (void)viewDidLoad { [super viewDidLoad]; [self setLau]; [self loadData]; _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(changeTime) userInfo:nil repeats:YES]; //添加定时器,倒数时间 } - (void)setLau{ self.ADImageView.image = [UIImage imageNamed:@"LaunchImage-568h"]; } - (void)loadData{ //利用sdImage框架异步下载广告界面 赋值与self.imageView } - (IBAction)ADBtnClick:(id)sender { UIApplication *app = [UIApplication sharedApplication]; app.keyWindow.rootViewController = [[ABTBController alloc] init]; [_timer invalidate]; //销毁定时器,否则不会释放 } - (void)changeTime{ static int time =3; if (time <= 0 ){ [self ADBtnClick:nil]; } time--; NSString *str = [NSString stringWithFormat:@"跳过 %d秒",time]; [self.ADJumpBtn setTitle:str forState:UIControlStateNormal]; //利用定时器倒数时间,时间结束触发按钮事件 }
时间: 2024-09-28 23:50:17