iOS 一个方法首次安装滚播图 展示应用简介
//第一次安装时会有引导页展示 非第一次直接进入应用页
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 一个方法首次安装滚播图 展示应用简介的更多相关文章
- 用原生的javascript 实现一个无限滚动的轮播图
说一下思路:和我上一篇博客中用JQ去写的轮播图有相同点和不同点 相同点: 首先页面布局是一样的 同样是改变.inner盒子的位置去显示不同的图片 不同点: 为了实现无限滚动需要多添加两张重复的图片 左 ...
- iOS swift版本无限滚动轮播图
之前写过oc版本的无限滚动轮播图,现在来一个swift版本全部使用snapKit布局,数字还是pageConrrol样式可选 enum typeStyle: Int { case pageContro ...
- jquery一个比较好的轮播图jQuery.kinMaxShow介绍
kinMaxShow API 可选参数以及详解 kinMaxShow 主参数详解 参数名称 默认值 简单释义 height 500 [整型 (单位:像素)]焦点图高度,必须设置 缺省则启用默认高度 5 ...
- vue 写一个炫酷的轮播图
效果如上图: 原理: 1.利用css 的 transform 和一些其他的属性,先选五张将图片位置拍列好,剩余的隐藏 2.利用 js 动态切换类名,达到切换效果 css代码如下 .swiper-cer ...
- iOS回顾笔记(05) -- 手把手教你封装一个广告轮播图框架
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- 自定义完美的ViewPager 真正无限循环的轮播图
网上80%的思路关于Android轮播图无限循环都是不正确的,不是真正意义上的无限循环, 其思路大多是将ViewPager的getCount方法返回值设置为Integer.MAX_VALUE, 然后呢 ...
- Swift-ScrollView轮播图的简易封装和使用
不多说,轮播图是开发中必要一项技能,直接上代码: 先说我的思路:首次继承于UIScrollView类自定义MyScrollView,在MyScrollView里自定制方法,func creatMySc ...
- 商城05——首页轮播图显示实现&Redis环境搭建&Redis实现缓存
1. 课程计划 1.首页轮播图的展示 2.首页大广告展示流程图 3.Redis的常用命令 4.Redis的服务器搭建 (集群的搭建) 5.向业务逻辑中添加缓存 6.Jedis的使用(redis的客 ...
- js 基础篇(点击事件轮播图的实现)
轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...
随机推荐
- 5分钟快速入门 - Less
下面给大家讲解下Less,纯手工,入门级别,相信没学过的人阅读完后就懂了,以下是我要讲的四点: 简单介绍 Less CSS 是一个使用广泛的 CSS 预处理器. 对 CSS 进行扩展,减少很多 CSS ...
- WebSockets介绍
Web sockets定义为在servers和clients之间的双向连接.意味着servers和clients可以同时交流并发送数据.这种协议是从底层就是双工连接.Web sockets技术上得到了 ...
- Memcached服务安装
安装Memcached服务 memcache分为服务端和客户端程序 服务端程序用来支持存储k-v值,程序名称memcached 客户端与服务端通信,进行存取值(常用的如php的memcache扩展,m ...
- 四色GDOI&GDOI2015滚粗记
好吧自己太弱写不了什么四色NOI只能学学别人写个四色GDOI了...首先自己还是太弱所以就被学校卡了个名额就进不了省队了QAQ.自己GDOI觉得考得不错可是NOIP毕竟少了人家5分根本追不上去好不QA ...
- Radis安装
基本知识 1.Redis的数据类型: 字符串.列表(lists).集合(sets).有序集合(sorts sets).哈希表(hashs) 2.Redis和memcache相比的独特之处: (1)re ...
- itextsharp c# asp.net 生成 pdf 文件
一切的开始必须要有2个dll, 可以通过nuget 包xiazai, 关键字是itextsharp. using iTextSharp.text; using iTextSharp.text.pdf; ...
- [编织消息框架][设计协议]优化long,int转换
理论部分 一个long占8byte,大多数应用业数值不超过int每次传输多4byte会很浪费 有没有什么办法可以压缩long或int呢? 答案是有的,原理好简单,如果数值不超过int.max_valu ...
- 2017 3-4/5 两天的学习的REVIEW
明天就要去面试啦,去感受一下,估计又是一顿虐,蓝瘦-- 3月4日:计算机安全基础技术与原理方面的学习 密码体制(密码)由五个部分组成: 消息空间(m),密文空间(c),密钥空间(k),加密算法(E), ...
- ERP管理员培训报道
金秋十月,丹桂飘香,为期三天的“201610管理员培训”活动于2016年10月19日在苏州总部成功举行.参与本次培训活动的有浙江卡迪夫电缆有限公司.上海华源瓷业股份有限公司.江苏牛牌纺织机械有限公司. ...
- Android intent 笔记
学习android的intent,将其中的一些总结,整理的笔记记录于此. intent是一个消息传递对象,可以在不同组件间传递数据.Activity,Service,Broadcast Receive ...