自定义App首次启动引导页
#import"ZBGuidePageView.h" @interfaceZBGuidePageView()<UIScrollViewDelegate> @property(nonatomic,strong)UIScrollView*scrollView;
@property(nonatomic,strong)UIPageControl*pageControl; @end @implementationZBGuidePageView NSString*key =@"CFBundleShortVersionString"; - (void)show { NSString*key =@"CFBundleShortVersionString"; //获得当前软件的版本号
NSString*currentVersion = [NSBundlemainBundle].infoDictionary[key]; //获得沙盒中存储的版本号
NSString*sanboxVersion = [[NSUserDefaultsstandardUserDefaults]stringForKey:key]; if(![currentVersionisEqualToString:sanboxVersion]) { //自定义引导界面
[selfpushGuideView]; //存储版本号
[[NSUserDefaultsstandardUserDefaults]setObject:currentVersionforKey:key]; //立即存储
[[NSUserDefaultsstandardUserDefaults]synchronize]; } } //加载视图
- (void)pushGuideView {
UIWindow*window = [UIApplicationsharedApplication].keyWindow;
self.frame= window.bounds;
[windowaddSubview:self];
//创建引导的滑动视图
_scrollView= [[UIScrollViewalloc]initWithFrame:CGRectMake(,,SCREEN_WIDTH,SCREEN_HEIGHT)];
[selfaddSubview:_scrollView];
_scrollView.backgroundColor= [UIColorwhiteColor];
//设置属性
//设置滑动视图内容的大小
_scrollView.contentSize=CGSizeMake(SCREEN_WIDTH*,SCREEN_HEIGHT);
//分页设置
_scrollView.pagingEnabled=YES;
//设置滚动条的显示与隐藏
_scrollView.showsHorizontalScrollIndicator=NO;
_scrollView.showsVerticalScrollIndicator=NO; //循环添加图片
for(NSIntegeri =; i <; i++) {
UIImageView*imageView = [[UIImageViewalloc]initWithFrame:CGRectMake(SCREEN_WIDTH* i,,SCREEN_WIDTH,SCREEN_HEIGHT)];
//设置属性
NSString*imageName = [NSStringstringWithFormat:@"guide%@.jpg",@(i +)];
imageView.image= [UIImageimageNamed:imageName];
imageView.userInteractionEnabled=YES; if(i ==) { UIButton*button = [[UIButtonalloc]initWithFrame:CGRectMake(,SCREEN_HEIGHT*0.85,SCREEN_WIDTH-,SCREEN_HEIGHT*0.07)];
[buttonsetTitle:@"立即体验"forState:UIControlStateNormal];
button.titleLabel.font= [UIFontfontWithName:@"Helvetica-Bold"size:];
[buttonaddTarget:selfaction:@selector(didExperButton)forControlEvents:UIControlEventTouchUpInside];
UIColor*color =UICOLOR_FROM_HEX(0x008aff);
[buttonsetBackgroundColor:color];
[imageViewaddSubview:button]; } [_scrollViewaddSubview:imageView];
}
} - (void)didExperButton
{
[UIViewbeginAnimations:@"animation"context:nil];
[UIViewsetAnimationDuration:1.0f];
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIViewsetAnimationTransition:UIViewAnimationTransitionCurlUpforView:self.windowcache:YES];
[UIViewcommitAnimations];
[selfremoveFromSuperview];
} @end
自定义App首次启动引导页的更多相关文章
- ionic之应用首次启动引导页
用户首次启动app先进入引导页,localstroge记录状态,下次启动应用不再显示引导页. HTML: <html> <head> <meta charset=&quo ...
- IOS 一句代码搞定启动引导页
前言引导页,一个酷炫的页面,自从微博用了之后一下就火起来了,对于现在来说一个app如果没有引导页似乎总显那么不接地气,那么为了让我们的app也“高大上”一次,我写了一个demo来实现启动引导页的实现, ...
- HybridApp启动引导页的实现
有一种帅叫做长话短说,@孙红雷,--这可以叫做“短帅”吗,^_^ 首先说下思路,既然是Hybrid APP, 那就是可以用html的方式实现,启动引导页比较常见的展示方式是滑动,那么我们就可以使用图片 ...
- 安卓第一次启动引导页使用ViewPager实现
我们在安装某个APP的时候,基本都会有一个引导页的提示,他们可以打广告,或者介绍新功能的加入和使用说明等.一般都支持滑动并且下面有几个点,显示共有多少页和当前图片的位置,在IOS上这个实现起来比较简单 ...
- Android:启动引导页实现
前言 基本上现在所有的应用都会有一个欢迎界面,在欢迎界面对应用做一个整体的介绍,然后在跳入到主界面,这次要说的这个引导页就是带翻页的引导页.效果如下所示
- 使用Webview实现app启动引导页
效果如下: 首先需要一个html页面及相应的js和css支持放在assets目录下(如果没有这个目录请项目上右键-new-folder-assets) 配置权限: <uses-permissio ...
- iOS-王云鹤 APP首次启动显示用户指导
这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单 我们只需要在一个类里面写好用户引导页面 基本上都是使用UIScrollView 来实现, 新建一个继承于UIViewController ...
- 应用app首次进入导航页动画
import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActi ...
- 怎样做一个iOS App的启动分层引导动画?
一. 为什么要写这篇文章? 这是一个很古老的话题,从两年前新浪微博开始使用多层动画制作iOS App的启动引导页让人眼前一亮(当然,微博是不是历史第一个这个问题值得商榷)之后,各种类型的引导页层出不穷 ...
随机推荐
- js使用占位符替换字符串
js使用占位符替换字符串是一个ES6中的模版字符串语法. 在``中使用 ${} var a = 5; var b = 10; console.log(`Fifteen is ${a + b} and ...
- Sql Server 锁 排它锁 更新锁 共享锁
引用别人的.有时间整体整理下. 引用地址:http://www.cnblogs.com/wenjl520/archive/2012/08/24/2654412.html 锁的概述 一. 为什么要引入锁 ...
- Csharp:asp.net CheckBoxList databind
/// <summary> /// CheckBoxList數據源 /// 塗聚文 /// 20130705 /// /// </summary> private void s ...
- scss-传递内容块到@mixin
样式块被传递给混入用于放置内的样式.在@content指令的位置,样式被包含进mixin. 内容块被传递到块被定义一个混合的范围进行计算. 下面的例子演示了mixin使用内容块的SCSS代码: @mi ...
- CSS垂直居中的四种方法
写在前面的话 最近在Stack Overflow上看到 一个不错的回答 ,以下是我对其的总结,分享给大家. 垂直居中的四种方法 ①基础的方法 设置父元素的line-height等于height,这种方 ...
- linux环境下安装jdk(本文示例是jdk1.6.0_45)
第一步:创建一个文件夹安装jdk(虽说地址一般自定义,但是为了方便查找请按照笔者建议目录 ):/usr/java 将jdk-6u45-linux-x64.bin文件放到 /usr/java 文件夹 ...
- Automapper 实现自动映射
出于安全考虑,在后台与前台进行数据传输时,往往不会直接传输实体模型,而是使用Dto(Data transfer object 数据传输对象),这样在后台往前台传递数据时可以省略不必要的信息,只保留必要 ...
- svn图标显示不正常,文件夹显示但文件不显示svn图标
svn图标显示不正常,文件夹显示但文件不显示svn图标 这个问题的引发是自己造成的,使用myEclipse时progress会卡在 refresh svn status cache (0%)这里, ...
- 一个C#面试问题,要求是将字符串中重复字符从第二个开始都去掉,空格除外。然后显示的时候,从后往前显示。
因为C#的code,感觉实现这个还是比较容易,只是SB.所以,在面试时候,以为不会这么容易,所以,我先试着用了Dictionary去实现,发现有困难.然后改回来用StringBuilder实现,这个因 ...
- collectd配置
udp proxy - 192.168.48.112 cat > /etc/collectd_25801.conf << EOF Hostname "kvm-48-112& ...