iOS开发之应用首次启动显示用户引导 - 疯狂的萝卜 - 博客园
iOS开发之应用首次启动显示用户引导
这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单
我们只需要在一个类里面写好用户引导页面 基本上都是使用UIScrollView 来实现,
新建一个继承于UIViewController的类 命名为 UserGuideViewController ,
在UserGuideViewController.m 写
1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 // Do any additional setup after loading the view. 5 self.view.backgroundColor = [UIColor redColor]; 6 7 [self initGuide]; //加载新用户指导页面 8 } 9 10 - (void)initGuide 11 { 12 UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 640)]; 13 [scrollView setContentSize:CGSizeMake(1280, 0)]; 14 [scrollView setPagingEnabled:YES]; //视图整页显示 15 // [scrollView setBounces:NO]; //避免弹跳效果,避免把根视图露出来 16 17 UIImageView *imageview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; 18 [imageview setImage:[UIImage imageNamed:@"0.png"]]; 19 [scrollView addSubview:imageview]; 20 [imageview release]; 21 22 UIImageView *imageview1 = [[UIImageView alloc] initWithFrame:CGRectMake(320, 0, 320, 460)]; 23 [imageview1 setImage:[UIImage imageNamed:@"1.png"]]; 24 [scrollView addSubview:imageview1]; 25 [imageview1 release]; 26 27 UIImageView *imageview2 = [[UIImageView alloc] initWithFrame:CGRectMake(640, 0, 320, 460)]; 28 [imageview2 setImage:[UIImage imageNamed:@"2.png"]]; 29 [scrollView addSubview:imageview2]; 30 [imageview2 release]; 31 32 UIImageView *imageview3 = [[UIImageView alloc] initWithFrame:CGRectMake(960, 0, 320, 460)]; 33 [imageview3 setImage:[UIImage imageNamed:@"3.png"]]; 34 imageview3.userInteractionEnabled = YES; //打开imageview3的用户交互;否则下面的button无法响应 35 [scrollView addSubview:imageview3]; 36 [imageview3 release]; 37 38 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//在imageview3上加载一个透明的button 39 [button setTitle:nil forState:UIControlStateNormal]; 40 [button setFrame:CGRectMake(46, 371, 230, 37)]; 41 [button addTarget:self action:@selector(firstpressed) forControlEvents:UIControlEventTouchUpInside]; 42 [imageview3 addSubview:button]; 43 44 [self.view addSubview:scrollView]; 45 [scrollView release]; 46 }
button的方法
1 - (void)firstpressed 2 { 3 [self presentModalViewController:[[[WeiBoViewController alloc] init] autorelease] animated:YES]; //点击button跳转到根视图 4 }
至于添加button是因为我的用户引导最后一个页面有一个画上去的button,写着 开始使用 我在上面添加一个透明的button 用以实现调用方法
打开AppDelegate.m
首先引入头文件
1 #import "UserGuideViewController.h" 2 #import "WeiBoViewController.h"
WeiBoViewController是我的根视图
application: didFinishLaunchingWithOptions: 方法内进行判断
1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 2 { 3 self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 4 // Override point for customization after application launch. 5 6 //判断是不是第一次启动应用 7 if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) 8 { 9 [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"]; 10 NSLog(@"第一次启动"); 11 //如果是第一次启动的话,使用UserGuideViewController (用户引导页面) 作为根视图 12 UserGuideViewController *userGuideViewController = [[UserGuideViewController alloc] init]; 13 self.window.rootViewController = userGuideViewController; 14 [userGuideViewController release]; 15 } 16 else 17 { 18 NSLog(@"不是第一次启动"); 19 //如果不是第一次启动的话,使用LoginViewController作为根视图 20 WeiBoViewController *weiBoViewController = [[WeiBoViewController alloc] init]; 21 self.window.rootViewController = weiBoViewController; 22 [weiBoViewController release]; 23 24 } 25 26 self.window.backgroundColor = [UIColor whiteColor]; 27 [self.window makeKeyAndVisible]; 28 return YES; 29 }
这样,就可以实现第一次打开应用显示用户引导 之后不再显示
关注 - 7
粉丝 - 14
» 下一篇:iOS开发中判断空字符串的几种方法
iOS开发之应用首次启动显示用户引导 - 疯狂的萝卜 - 博客园相关推荐
- 推荐18个基于 HTML5 Canvas 开发的图表库 - 梦想天空(山边小溪) - 博客园
推荐18个基于 HTML5 Canvas 开发的图表库 - 梦想天空(山边小溪) - 博客园 推荐18个基于 HTML5 Canvas 开发的图表库
- 解决AJAX CalendarExtender控件不显示中文的情况(转帖博客园某人(不好意思,实在是没有找到您的尊姓大名,感谢一下!))...
在接触Ajax Control Toolkit之后,发现CalendarExtender的使用真的很方便,只要把控件拖入就能够使TextBox弹出日期选择. 不过大家都是否有跟我一样的问题,那就是.. ...
- Node.js+Koa开发微信公众号个人笔记(一)准备工作 - ZhangCui - 博客园
本人也是在学习过程中,所以文章只作为学习笔记,如果能帮到你,那就更好啦~当然也难免会有错误,请不吝指出~ 一.准备工作 1.本人学习教程:慕课网Scott老师的<Node.js七天搞定微信公众号 ...
- android button 中文字位置设置,iOS开发-- 设置UIButton的文字显示位置、字体的大小、字体的颜色...
btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @"search" forState: UIControlS ...
- Microsoft .NET Compact Framework 开发常见问题解答 - 专注.NET技术及其相关应用开发! - 博客园...
Microsoft .NET Compact Framework 开发常见问题解答 发布日期: 3/30/2005 | 更新日期: 3/30/2005 Microsoft .NET Compact F ...
- iOS_CNBlog项目开发 (基于博客园api开发) 上篇
按照惯例, 先上效果图 前言 做这个项目是因为刚好在逛博客园的时候看到一篇文章 博客园第三方客户端-i博客园正式发布App Store, 这里就帮忙贴下链接吧. 整个项目做下来大概做了半个月, 今天算 ...
- PageRank 计算博客园用户排名
PageRank 通过网页与网页之间的链接关系计算各网页权重,一般权重高的网页特点是:链接向它的网页数量多.链向它的网页其权重也较高.PageRank 就是通过这样的连接关系,一轮轮迭代计算后得出各网 ...
- 博客园客户端UAP开发随笔 -- 搭建App之间的桥梁
开发Windows Phone应用的同学们应该都注意到了,Windows Phone 为了安全性,对应用的限制还是比较多的.我记得一位360的同学很无奈的说:WP太安全了,我们这些做WP上360卫士的 ...
- 博客园客户端UAP开发随笔 -- App UI设计的三大纪律八项注意
前言 每一个页面都是这个App的门面,尤其是主页面,看上去干净整洁清爽宜人容易操作,那么你的App就成功了一半.这也反映出了你这个开发团队的基本审美素质和设计理念.如果你不是一个团队,而是一个个人开发 ...
最新文章
- 大数据揭秘:北京每天这些道路“最红”
- 神经网络设计与分析之sin函数拟合分析
- oracle11g中rman基本使用方法
- 从源码剖析SpringBoot中Tomcat的默认最大连接数
- big sur删除snapshot_法国Labarthe-Sur-Lèze公立中学 | LCR Architectes
- Android WebView https白屏、Http和Https混合问题、证书配置和使用
- discuz 不能上传头像提示can not write to the data/tmp folder
- ClickHouse留存、路径、漏斗、session实战
- 下载安装Redis+使用
- html中如何设置ttf,CSS怎么引用外部ttf字体?
- 40个PPT下载 | 分享珍藏很久的大数据PPT合集(附链接)
- Axure 网站后台-能源管理系统 rp 9原模板代码下载
- 剑指 Offer 58 - II. 左旋转字符串
- 计算任意多边形面积的Python实现
- Android ObjectAnimator类:手把手带你自定义属性动画
- 什么是Socket?websocket和socket区别?
- git 错误:GnuTLS recv error (-54): Error in the pull function
- 如何编写自己的头文件
- python软件下载-Python3.8下载
- Unity DrawCall优化