//第一次安装时会有引导页展示  非第一次直接进入应用页

if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"isOne"] isEqual:@"isOne"]) {

[self showViewController];

}else{

RootViewController *root= [[RootViewController alloc] init];

self.window.rootViewController = root;

[self isFirstInstall];

}

//直接在AppDelegate 类中写该方法

-(void)isFirstInstall{

//引导页

UIScrollView *sc = [[UIScrollView alloc]initWithFrame:self.window.bounds];

sc.pagingEnabled = YES;

sc.delegate = self;

sc.showsHorizontalScrollIndicator = NO;

sc.showsVerticalScrollIndicator = NO;

[self.window.rootViewController.view addSubview:sc];

NSArray *arr = @[@"引导页1.jpg",@"引导页2.jpg",@"引导页3.jpg"];

for (NSInteger i = 0; i<arr.count; i++)

{

UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(SCREEN_WIDTH*i, 0, SCREEN_WIDTH, self.window.frame.size.height)];

img.image = [UIImage imageNamed:arr[i]];

[sc addSubview:img];

img.userInteractionEnabled = YES;

if (i == arr.count - 1)

{

//根据自己项目中的需求进行设置末页体验按钮

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];

btn.frame = CGRectMake((self.window.frame.size.width/2)-100, SCREEN_HEIGHT-110, 200, 50);

//            btn.backgroundColor = [UIColor greenColor];

//            [btn setTitle:@"开始体验" forState:UIControlStateNormal];

[btn addTarget:self action:@selector(goRoot) forControlEvents:UIControlEventTouchUpInside];

[img addSubview:btn];

[btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

//            btn.layer.borderWidth = 1;

//            btn.layer.borderColor = [UIColor greenColor].CGColor;

}

}

sc.contentSize = CGSizeMake(SCREEN_WIDTH*arr.count, self.window.frame.size.height);

}

//立即体验的执行方法

- (void)goRoot{

NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

[user setObject:@"isOne" forKey:@"isOne"];

[user synchronize];

//在这里设置项目中的根控制器

self.window.rootviewController = viewcontroller ;

}

//项目中scrollview的代理方法设置引导页

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

//SCREEN_WIDTH *4 这里4是引导页的张数,x的偏移量大于4个屏幕多30,也可以进入应用,类似立即体验中的功能方法。根据自己项目中的需求进行添加

if (scrollView.contentOffset.x>SCREEN_WIDTH *4+30)

{

[self goRoot];

}

}

//就是这么easy,引导图设置完毕,共勉

iOS 一个方法首次安装滚播图 展示应用简介的更多相关文章

  1. 用原生的javascript 实现一个无限滚动的轮播图

    说一下思路:和我上一篇博客中用JQ去写的轮播图有相同点和不同点 相同点: 首先页面布局是一样的 同样是改变.inner盒子的位置去显示不同的图片 不同点: 为了实现无限滚动需要多添加两张重复的图片 左 ...

  2. iOS swift版本无限滚动轮播图

    之前写过oc版本的无限滚动轮播图,现在来一个swift版本全部使用snapKit布局,数字还是pageConrrol样式可选 enum typeStyle: Int { case pageContro ...

  3. jquery一个比较好的轮播图jQuery.kinMaxShow介绍

    kinMaxShow API 可选参数以及详解 kinMaxShow 主参数详解 参数名称 默认值 简单释义 height 500 [整型 (单位:像素)]焦点图高度,必须设置 缺省则启用默认高度 5 ...

  4. vue 写一个炫酷的轮播图

    效果如上图: 原理: 1.利用css 的 transform 和一些其他的属性,先选五张将图片位置拍列好,剩余的隐藏 2.利用 js 动态切换类名,达到切换效果 css代码如下 .swiper-cer ...

  5. iOS回顾笔记(05) -- 手把手教你封装一个广告轮播图框架

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  6. 自定义完美的ViewPager 真正无限循环的轮播图

    网上80%的思路关于Android轮播图无限循环都是不正确的,不是真正意义上的无限循环, 其思路大多是将ViewPager的getCount方法返回值设置为Integer.MAX_VALUE, 然后呢 ...

  7. Swift-ScrollView轮播图的简易封装和使用

    不多说,轮播图是开发中必要一项技能,直接上代码: 先说我的思路:首次继承于UIScrollView类自定义MyScrollView,在MyScrollView里自定制方法,func creatMySc ...

  8. 商城05——首页轮播图显示实现&Redis环境搭建&Redis实现缓存

    1.   课程计划 1.首页轮播图的展示 2.首页大广告展示流程图 3.Redis的常用命令 4.Redis的服务器搭建 (集群的搭建) 5.向业务逻辑中添加缓存 6.Jedis的使用(redis的客 ...

  9. js 基础篇(点击事件轮播图的实现)

    轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...

随机推荐

  1. !important的理解

    !important用于将当前css代码优先级提升为最高,这个优先级比行内样式更高 但是!important在ie6这种垃圾浏览器下会出现小bug .testClass{ color:blue !im ...

  2. [Kafka] - Kafka Java Consumer实现(一)

    Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) H ...

  3. android学习19--Matrix.mapPoints作用

    android图形的旋转,缩放,平移都是用matrix实现的.可以用mapPoints来计算一个点旋转,缩放,平移后的坐标.看下面例子. Matrix matrix = new Matrix(); m ...

  4. Docker存储驱动之AUFS简介

    简介 AUFS是曾是Docker默认的首选存储驱动.它非常稳定.有很多真实场景的部署.很强的社区支持.它有以下主要优点: 极短的容器启动时间. 有效的存储利用率. 有效的内存利用率. 虽然如此,但由于 ...

  5. Gulp入门与解惑

    Gulp简介 Gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务.Gulp.js是基于 Node.js构建的,利用Node.js流的威力,你可以快速构建项目. 安装 ...

  6. 如何用一张图片代替 'input:file' 上传本地文件??

    今天去面试,碰到了一道题,也许是因为紧张或者喝水喝多了,一时竟然没有转过弯来,回来之后一细想原来这么简单,哭笑不得,特此记录一下! 原题是这样的:  如何用一张图片代替 'input:file' 上传 ...

  7. Kindle电子阅读器收不到个人文档推送解决方案

    最近我的 kindle 固件版本更新到 5.8.7.0.1 ,发现增加了生字注音功能,瞬间变成小学生阅读神器有木有,不过,这个功能可以隐藏.显示,看着碍眼隐藏即可,还可以减少和增加生字注音.感觉对于经 ...

  8. Java 集合的简单实现 (ArrayList & LinkedList & Queue & Stack)

    ArrayList 就是数组实现的啦,没什么好说的,如果数组不够了就扩容到原来的1.5倍 实现了迭代器 package com.wenr.collection; import java.io.Seri ...

  9. 极光推送CTO黄鑫:技术人员要建立自己的知识图谱

    本周,我们邀请到了极光推送CTO兼首席科学家黄鑫进行人物专访,在展示风采的同时,也分享会员们对技术.对工作.对人生的感悟.       扎实的底层服务是扩张关键 极光推送是一个做第三方云服务的公司,在 ...

  10. 如何垂直居中<img>?

    方法1: 父元素设置height=line-height,子元素设置vertical-align:middle; 方法2: 父元素display:table-cell;vertical-align:m ...