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 新特性的同时, ...
随机推荐
- [udemy]WebDevelopment_CSS
Your First CSS(Cascading Style Sheets) Cascading means it always takes selector that is at the end 即 ...
- 解决clion2016.3不能支持搜狗输入法的问题
参考链接http://www.cnblogs.com/chentq/p/4975794.html 打开clion.sh在文件头部添加 export GTK_IM_MODULE=fcitx export ...
- android安装前期遇到的问题
1.安装的eclipse与对应的java版本位数要一致,要么32位,要么64位. 2.关于新版ADT创建项目时出现appcompat_v7的问题 更新ADT至22.6.0版本之后,创建新的安装项目,会 ...
- 一起做RGB-D SLAM (6)
第六讲 图优化工具g2o的入门 2016.11 更新 把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了. OpenCV可以使用 apt-get install libo ...
- nginx 集群介绍
nginx 集群介绍 完成一次请求的步骤 1)用户发起请求 2)服务器接受请求 3)服务器处理请求(压力最大) 4)服务器响应请求 缺点:单点故障 单台服务器资源有限 单台服务器处理耗时长 ·1)部署 ...
- Mybatis的select查询的三种方式
1.首先建立一个测试的dao public interface IStudentDao { // 根据姓名查询 List<Student> selectStudentsByName(Str ...
- java并发编程实战:第八章----线程池的使用
一.在任务和执行策略之间隐性耦合 Executor框架将任务的提交和它的执行策略解耦开来.虽然Executor框架为制定和修改执行策略提供了相当大的灵活性,但并非所有的任务都能适用所有的执行策略. 依 ...
- nancyfx中的静态内容文件夹
原文件 DefaultStaticContentsConventions.cs 可以根据需要自定调整,在代码里改的好处是通用.如果通过在webconfig里设置的话,在非iis环境下,可能会有问题. ...
- airport 抓包
链接airport命令: ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources ...
- vim命令以及gcc编译器的常用cmd
Gcc常用命令: -c 仅对源文件进行编译,不链接生成可执行文件.常用于查错和只生成目标文件. -o 经过gcc处理过后的结果保存在-o后面的文件中,可以是多种文件 ...