iOS 之新特性界面
1、什么事新特性界面?
新特性界面就是第一次下载程序出现的界面,他的用途是帮助用户快速了解这款APP,所有说还是很有必要学一下的。
2、如何实现新特性界面?
实现思路:从本质上看,新特性界面就是一个全屏的ScrollView而已,但是要在程序一进来的时候判断是否是第一次使用程序。所有要在程序一启动判断版本号,这里有两种情况。一种是:没有版本号,这种肯定显示新特性界面的。另一种就是版本号低于现在程序的也要显示新特性界面(如果有本版本的新特性界面的话)。
逻辑关系如下:
具体代码如下:
1)APPDelegate里面的代码
NSString * key = @"CFBundleVersion";
// 取出沙盒中存储的上次使用软件的版本号
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *lastVersion = [defaults stringForKey:key]; // 获得当前软件的版本号
NSString *currentVersion = [NSBundle mainBundle].infoDictionary[key];
if ([currentVersion isEqualToString:lastVersion]) {
NextViewController * nextVC = [[NextViewController alloc]init];
UINavigationController * nav = [[UINavigationController alloc]initWithRootViewController:nextVC]; self.window.rootViewController = nav;
} else { // 新版本
ViewController * vc = [[ViewController alloc]init];
UINavigationController * nav = [[UINavigationController alloc]initWithRootViewController:vc]; self.window.rootViewController = nav;
// 存储新版本
[defaults setObject:currentVersion forKey:key];
[defaults synchronize];
}
2)VC中的代码:
- (void)setupFZHScrollView
{
self.fzhScrollView = [[UIScrollView alloc]init];
self.fzhScrollView.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
self.fzhScrollView.contentSize = CGSizeMake(SCREEN_WIDTH * ImageNum, 0);
self.fzhScrollView.delegate = self;
self.fzhScrollView.pagingEnabled = YES;
for ( int i = 0; i< ImageNum; i++) {
UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(i * SCREEN_WIDTH, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
NSString * name = [NSString stringWithFormat:@"%d.jpg",i + 1];
imageView.image = [UIImage imageNamed:name];
[self.fzhScrollView addSubview:imageView];
} [self.view addSubview:self.fzhScrollView];
[self setupBtn];
}
- (void)setupBtn
{
UIButton * btn = [[UIButton alloc]init];
[btn setTitle:@"进入" forState:UIControlStateNormal];
btn.frame = CGRectMake((ImageNum - 1) * SCREEN_WIDTH + 100, 200, 100, 100);
[btn addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
[self.fzhScrollView addSubview:btn]; }
- (void)buttonClick
{
[self.navigationController pushViewController:[[NextViewController alloc]init] animated:YES];
}
demo下载地址:https://github.com/fengzhihao123/FZHNewFeatures
iOS 之新特性界面的更多相关文章
- iOS彩票项目--第四天,新特性界面搭建,UICollectionViewController的初次使用
一.新特性界面搭建的思路: 在AppDelegate加载主窗体的时候进行判断程序版本号,直接进入程序或者进入新特性展示界面 取出当前的版本号,与旧的版本号相比较(旧的版本号在进入程序的时候存起来 =& ...
- iOS 9应用开发教程之iOS 9新特性
iOS 9应用开发教程之iOS 9新特性 iOS 9开发概述 iOS 9是目前苹果公司用于苹果手机和苹果平板电脑的最新的操作系统.该操作系统于2015年6月8号(美国时间)被发布.本章将主要讲解iOS ...
- iOS开发——新特性OC篇&IOS9 SDK新特性
iOS9 SDK新特性 WWDC 2015苹果开发者大会是移动开发者一年一度的盛会,InfoQ中文站除了第一时间整理Keynote内容分享给大家之外,还邀请了资深的一线开发者分享他们的收获.本文为王巍 ...
- iOS 8 新特性
这篇文章会介绍iOS8开发相关的主要特性. App 插件 通过支持插件,iOS8让我们可以系统指定的区域进行扩展,也就是为用户的特定需求提供自定义的方法.例如:可以通过App插件帮助用户分享他们的内容 ...
- iOS 9 新特性
这篇文章介绍了iOS9开发相关的简介,现在发布的设备都会搭载iOS9.这篇文章也列出了详细描述新特性的文章. iPad多线程增强 iOS9使用Slider Over, Split View, Pict ...
- iOS 7 新特性
iOS7更新了很多引人注目的功能.用户界面完全重新设计了.iOS7为开发2D,2.5D游戏引入了全新的动画系统.加强多线程,点对点连接,以及许多其他重要的功能让iOS7成为有史以来最有意义的一次发 ...
- iOS开发——新特性OC篇&Swift 2.0新特性
Swift 2.0新特性 转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度 ...
- iOS开发——新特性OC篇&IOS9 系统新特性
IOS9 系统新特性 2015年6月89号凌晨召开的WWDC 2015苹果开发者大会发布了全新的iOS 9系统,PC6小编今天给大家整理了这次iOS9的系统更新带来了哪些新的功能与升级,本次新功能一览 ...
- iOS开发——新特性OC篇&Objective新特性
Objective新特性 Overview 自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时, ...
随机推荐
- Going Home(最小费用最大流)
Going Home http://poj.org/problem?id=2195 Time Limit: 1000MS Memory Limit: 65536K Total Submission ...
- set 续2
--------siwuxie095 用 set 命令进行字符串处理(这个不应只属于 set 的内容,应该归属于格式内容, 在没有 set 的情况下,格式仍旧适用) ...
- 岛屿的个数12 · Number of Islands12
[抄题]: 给一个01矩阵,求不同的岛屿的个数. 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右为相邻. [ [1, 1, 0, 0, 0], [0, 1, 0, 0 ...
- Golang之实现(链表)
链表算法 package main import "fmt" type LinkNode struct { data interface{} next *LinkNode } ty ...
- 随机分布 + action 计数
For random samples from , use: 注意平方: sigma * np.random.randn(...) + mu 2.5*2.5 = 6.25 Two-by-four a ...
- 2018年3大UI设计趋势,你知道吗?
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 之前小编已经和大家讨论了2018年软件测试的五大趋势,现在让我们一起来看看移动UI设计在2018年会 ...
- Transform动画初解 in Swift
创建一个界面,就像这样的: 顶部是一个UISegmentControl,用来制定transform的类型.分别是:CGAffineTransformMakeTranslation.CGAffineTr ...
- [label][OS] 制作 U 盘安装 Windows 7
U盘安装完美的WIN7操作系统教程 [编辑] 请使用正版系统 http://item.jd.com/965031.html 以保证您的电脑信息安全 此教程适用与 win7及win8 准备工作 ...
- Javascript设计模式理论与实战:组合模式
我们平时开发过程中,一定会遇到这种情况:同时处理简单对象和由简单对象组成的复杂对象,这些简单对象和复杂对象会组合成树形结构,在客户端对其处理的时候要保持一致性.比如电商网站中的产品订单,每一张产品订单 ...
- 指定的 LINQ 表达式包含对与不同上下文关联的查询的引用
解决方法是分两次查询. 报错的原因是在涉及到内存中的对象与EF里的对象混合查询时,内存中的对象要是基元类型. 第一次查询实际上会因为EF的延时加载,不会立即将数据查询到内存中. 解决方法是对第一次查询 ...