Swift - 启动时的向导页(新手引导)的制作


|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import UIKit@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. //增加标识,用于判断是否是第一次启动应用... if (!(NSUserDefaults.standardUserDefaults().boolForKey("everLaunched"))) { NSUserDefaults.standardUserDefaults().setBool(true, forKey:"everLaunched") var guideViewController = GuideViewController() self.window!.rootViewController=guideViewController; println("guideview launched!") } return true } func applicationWillResignActive(application: UIApplication) { } func applicationDidEnterBackground(application: UIApplication) { } func applicationWillEnterForeground(application: UIApplication) { } func applicationDidBecomeActive(application: UIApplication) { } func applicationWillTerminate(application: UIApplication) { }} |
7,向导页面:GuideViewController.swift
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
import UIKitclass GuideViewController:UIViewController,UIScrollViewDelegate{ var numOfPages = 3 override func viewDidLoad() { var frame = self.view.bounds //scrollView的初始化 var scrollView=UIScrollView() scrollView.frame=self.view.bounds scrollView.delegate = self //为了能让内容横向滚动,设置横向内容宽度为3个页面的宽度总和 scrollView.contentSize=CGSizeMake(frame.size.width*CGFloat(numOfPages),frame.size.height) println("\(frame.size.width*CGFloat(numOfPages)),\(frame.size.height)") scrollView.pagingEnabled=true scrollView.showsHorizontalScrollIndicator=false scrollView.showsVerticalScrollIndicator=false scrollView.scrollsToTop=false for i in 0..<numOfPages{ var imgfile = "jianjie\(Int(i+1)).png" println(imgfile) var image = UIImage(named:"\(imgfile)") var imgView = UIImageView(image: image) imgView.frame=CGRectMake(frame.size.width*CGFloat(i),CGFloat(0), frame.size.width,frame.size.height) scrollView.addSubview(imgView) } scrollView.contentOffset = CGPointZero self.view.addSubview(scrollView) } func scrollViewDidScroll(scrollView: UIScrollView!) { println("scrolled:\(scrollView.contentOffset)") var twidth = CGFloat(numOfPages-1) * self.view.bounds.size.width if(scrollView.contentOffset.x > twidth) { var mainStoryboard = UIStoryboard(name:"Main", bundle:nil) var viewController = mainStoryboard.instantiateInitialViewController() as UIViewController self.presentViewController(viewController, animated: true, completion:nil) } }} |
Swift - 启动时的向导页(新手引导)的制作的更多相关文章
- android应用程序第一次启动时显示引导界面
市面上好多优秀的应用(举例新浪微博.UC浏览器)都采用了欢迎页面与使用向导的方式给用户带来了良好的用户体验. 一般来说用户第一次安装应用或者安装了新版本后第一次进入应用都会显示成 欢迎页面-使用向导- ...
- 【Android端 APP 启动时长获取】启动时长获取方案及具体实施
一.什么是启动时长? 1.启动时长一般包括三种场景,分别是:新装包的首次启动时长,冷启动时长.热启动时长 冷启动 和 热启动 : (1)冷启动:当启动应用时,后台没有该程序的进程,此时启动的话系统会分 ...
- Sharepoint 2010 工作流启动时处理表单出错
问题: Shareoint 2010 列表工作流启动时,显示“处理表单时出现严重错误”. Error Message-1: Object doesn't support property or met ...
- Crystal Reports 2008(水晶报表) 启动时检查更新
在安装好了Crystal Reports后,每次打开的是都会出现以下提示: 服务器正在运行中 由于另一个程序正在运行中,此操作无法完成.请选择“切换到”来激活正在运行中的程序,并更正问题. 碰到这样的 ...
- MySQL指定mysqld启动时所加载的配置文件
mysqld.exe --init-file=file_name 以下为配置文件参数优化和中文详解: [client]port = 3306socket = /tmp/mysql.sock [mysq ...
- intellj(idea) 编译项目时在warnings 页签框里 报 “xxx包不存在” 或 “找不到符号” 或 “未结束的字符串字面值” 或 “需要)” 或 “需要;”等错误提示
如上图: 环境 是 刚换的系统,重装的Intellj,直接双击老的皇帝项目中的idea的 .iml文件,结果 打开 intellj 后,进行 ctrl +shift +F9 编译时 尽然报 错误提示, ...
- iOS 界面启动时,功能新特征显示
APP新启动的时候,都会有几张新的图片滑动,才能到主的界面.现在,我们新建一个控制器,专门来处理新特性,直接上代码. 第一步:新建一个NewfeatureController // // HWNewf ...
- Redis 3.0版本启动时出现警告的解决办法
原文:http://m.blog.csdn.net/article/details?id=50864933 Redis 3.0.7版本启动时出现警告的解决办法 发表于2016/3/12 12:52:4 ...
- Linux系统开机启动时的工作原理
Linux系统开机启动时的工作原理也是深入了解Linux系统核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至 ...
随机推荐
- 如何抓取Thread Dump小结(转)
当系统性能出现问题时,需要从各个方面来查看网络环境.主机资源.查看最经变更的代码等.如果是想从代码层面解决问题,那么最有效的方法就是查看相关dump文件.如果是使用IBM JDK(我默认你是在aix环 ...
- CocoaPods on Xcode 6 and Yosemite
老子今天又给环境跪了..... cocoapods 在升级完新系统以后无法工作 解决cocoapods 在 mac 10.10下报错 错误例如以下. /System/Library/Framework ...
- HTML5给我们带来了什么
websocket 根据维基定义 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端直接向客户端推送数据而不需要客户端进行请求,在 WebSocket API 中,浏览器和服 ...
- Jquery学习笔记:利用parent和parents方法获取父节点
通过选择器一般只能获取指定标识的节点,或者获取子节点. 有些场景下,往往需要根据当前节点找到满足条件的父节点.这个可以通过相应的方法来实现. 1.parent方法 该方法可以获取元素的直接父节点. 我 ...
- android中关于ListView的卡位说明
需求:做项目的时候,需要将ListView的header的一个Tab卡位,即listView滑动后,Header的某一个部分可以定在ListView的顶端卡住. 解决的方案:监听ListView的滑动 ...
- BZOJ 1486: [HNOI2009]最小圈( 二分答案 + dfs判负圈 )
二分答案m, 然后全部边权减掉m, 假如存在负圈, 那么说明有平均值更小的圈存在. 负圈用dfs判断. ------------------------------------------------ ...
- debian网易163更新服务器 源
sudo vi /etc/apt/sources.list 加入如下内容即可: deb http://mirrors.163.com/debian/ jessie main non-free cont ...
- 基于visual Studio2013解决C语言竞赛题之1011对称
题目 解决代码及点评 /* 11. 判断一个给定的5×5方阵是否以第3列为轴线对称? */ #include <stdio.h> #include <s ...
- 在TC(Total Commander)中添加启动Cygwin快捷键的方法
在TC(Total Commander)中添加启动Cygwin快捷键的方法 1.在Cygwin的安装目录下,增加文件tc-cygwin.bat(例如C:\cygwin-177\tc-cygwin.ba ...
- Swift - 闭包的介绍及用法(以数组排序为例)
闭包(即一些小的匿名代码块),可以像函数一样使用.可以很方便的将闭包传给其他函数,告诉它们应当如何执行某一个任务. 1,使用sort方法和闭包进行数组排序 sort方法返回一个数组的有序版本.(sor ...