应用程序程序启动时加载广告 ---ios

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

应用程序程序启动时加载广告 ---ios的相关文章

如何在tomcat启动时加载一个类

Tomcat启动时classloader加载顺序 Tomcat的class加载的优先顺序一览   1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件.   2.环境变量CLASSPATH中的jar和class文件.   3.$CATALINA_HOME/common/classes下的class文件.   4.$CATALINA_HOME/commons/endorsed下的jar文件.   5.$CATALINA_HOME/commons/i18n下的jar文件.   6.

Servlet在启动时加载的tomcat源码(原创)

tomcat 8.0.36 知识点: 通过配置loadOnStartup可以设置Servlet是否在Tomcat启动时加载,以及按值大小进行有序加载,其最小有效值为0,最大有效值为Integer.MAX_VALUE. Jsp Servlet的类是org.apache.jasper.servlet.JspServlet. Jsp Servlet是强制性启动时加载,其loadOnStartup的默认值,或其值是失效值时,将使用最大有效值. 通过配置Context或Host的failCtxIfServ

ElasticSearch 启动时加载 Analyzer 源码分析

ElasticSearch 启动时加载 Analyzer 源码分析 本文介绍 ElasticSearch启动时如何创建.加载Analyzer,主要的参考资料是Lucene中关于Analyzer官方文档介绍.ElasticSearch6.3.2源码中相关类:AnalysisModule.AnalysisPlugin.AnalyzerProvider.各种Tokenizer类和它们对应的TokenizerFactory.另外还参考了一个具体的基于ElasticSearch采用HanLP进行中文分词的

设置程序启动时加载的storyboard

这个设置表明:程序启动时会加载Main.storyboard

Tomcat(一):Tomcat启动时加载web.xml

server.xml配置文件样例: <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional inf

VS2010调试程序启动时加载程序非常慢的

在win7上使用VS2010编译某程序无误后,然后以release态并可输出调试信息时调试程序.console窗口也出现了,但是加载相关信息是特别慢.并出现如下信息: win32.exe': Loaded 'C:\Windows\System32\msvcr100d.dll', Symbols loaded. 'win32.exe': Loaded 'C:\Windows\System32\imm32.dll', Cannot find or open the PDB file 'win32.e

小程序启动时加载顺序,App()所做的事

启动小程序后,首先会执行App({}),中的声明周期函数.(注册小程序示例) onLauch函数,监听小程序的启动后的函数(监听小程序初始化),可以在这个函数中 进行网路请求,或者获取用户信息. 和App相关的生命周期函数文档:https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html wx.getUserInfo({//获取用户信息 success:function(res){ console.log(res)

spring项目中监听器作用-ContextLoaderListener(项目启动时,加载一些东西到缓存中)

作用:在启动Web容器时,自动装配Spring applicationContext.xml的配置信息. 因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法.在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成 pring在web下的入口在配置文件web.xml的监听器中 <listener> <listener-cl

如何查看apache服务器启动时加载了哪些模块

查看apache服务器编译时所加载的模块 [[email protected] bin]# ./apachectl -lCompiled in modules:  core.c  mod_authn_file.c  mod_authn_default.c  mod_authz_host.c  mod_authz_groupfile.c  mod_authz_user.c  mod_authz_default.c  mod_auth_basic.c  mod_filter.c  mod_versi