代码如下
  1. #import"ZBGuidePageView.h"
  2.  
  3. @interfaceZBGuidePageView()<UIScrollViewDelegate>
  4.  
  5. @property(nonatomic,strong)UIScrollView*scrollView;
  6. @property(nonatomic,strong)UIPageControl*pageControl;
  7.  
  8. @end
  9.  
  10. @implementationZBGuidePageView
  11.  
  12. NSString*key =@"CFBundleShortVersionString";
  13.  
  14. - (void)show {
  15.  
  16. NSString*key =@"CFBundleShortVersionString";
  17.  
  18. //获得当前软件的版本号
  19. NSString*currentVersion = [NSBundlemainBundle].infoDictionary[key];
  20.  
  21. //获得沙盒中存储的版本号
  22. NSString*sanboxVersion = [[NSUserDefaultsstandardUserDefaults]stringForKey:key];
  23.  
  24. if(![currentVersionisEqualToString:sanboxVersion]) {
  25.  
  26. //自定义引导界面
  27. [selfpushGuideView];
  28.  
  29. //存储版本号
  30. [[NSUserDefaultsstandardUserDefaults]setObject:currentVersionforKey:key];
  31.  
  32. //立即存储
  33. [[NSUserDefaultsstandardUserDefaults]synchronize];
  34.  
  35. }
  36.  
  37. }
  38.  
  39. //加载视图
  40. - (void)pushGuideView {
  41. UIWindow*window = [UIApplicationsharedApplication].keyWindow;
  42. self.frame= window.bounds;
  43. [windowaddSubview:self];
  44. //创建引导的滑动视图
  45. _scrollView= [[UIScrollViewalloc]initWithFrame:CGRectMake(,,SCREEN_WIDTH,SCREEN_HEIGHT)];
  46. [selfaddSubview:_scrollView];
  47. _scrollView.backgroundColor= [UIColorwhiteColor];
  48. //设置属性
  49. //设置滑动视图内容的大小
  50. _scrollView.contentSize=CGSizeMake(SCREEN_WIDTH*,SCREEN_HEIGHT);
  51. //分页设置
  52. _scrollView.pagingEnabled=YES;
  53. //设置滚动条的显示与隐藏
  54. _scrollView.showsHorizontalScrollIndicator=NO;
  55. _scrollView.showsVerticalScrollIndicator=NO;
  56.  
  57. //循环添加图片
  58. for(NSIntegeri =; i <; i++) {
  59. UIImageView*imageView = [[UIImageViewalloc]initWithFrame:CGRectMake(SCREEN_WIDTH* i,,SCREEN_WIDTH,SCREEN_HEIGHT)];
  60. //设置属性
  61. NSString*imageName = [NSStringstringWithFormat:@"guide%@.jpg",@(i +)];
  62. imageView.image= [UIImageimageNamed:imageName];
  63. imageView.userInteractionEnabled=YES;
  64.  
  65. if(i ==) {
  66.  
  67. UIButton*button = [[UIButtonalloc]initWithFrame:CGRectMake(,SCREEN_HEIGHT*0.85,SCREEN_WIDTH-,SCREEN_HEIGHT*0.07)];
  68. [buttonsetTitle:@"立即体验"forState:UIControlStateNormal];
  69. button.titleLabel.font= [UIFontfontWithName:@"Helvetica-Bold"size:];
  70. [buttonaddTarget:selfaction:@selector(didExperButton)forControlEvents:UIControlEventTouchUpInside];
  71. UIColor*color =UICOLOR_FROM_HEX(0x008aff);
  72. [buttonsetBackgroundColor:color];
  73. [imageViewaddSubview:button];
  74.  
  75. }
  76.  
  77. [_scrollViewaddSubview:imageView];
  78. }
  79. }
  80.  
  81. - (void)didExperButton
  82. {
  83. [UIViewbeginAnimations:@"animation"context:nil];
  84. [UIViewsetAnimationDuration:1.0f];
  85. [UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
  86. [UIViewsetAnimationTransition:UIViewAnimationTransitionCurlUpforView:self.windowcache:YES];
  87. [UIViewcommitAnimations];
  88. [selfremoveFromSuperview];
  89. }
  90.  
  91. @end

自定义App首次启动引导页的更多相关文章

  1. ionic之应用首次启动引导页

    用户首次启动app先进入引导页,localstroge记录状态,下次启动应用不再显示引导页. HTML: <html> <head> <meta charset=&quo ...

  2. IOS 一句代码搞定启动引导页

    前言引导页,一个酷炫的页面,自从微博用了之后一下就火起来了,对于现在来说一个app如果没有引导页似乎总显那么不接地气,那么为了让我们的app也“高大上”一次,我写了一个demo来实现启动引导页的实现, ...

  3. HybridApp启动引导页的实现

    有一种帅叫做长话短说,@孙红雷,--这可以叫做“短帅”吗,^_^ 首先说下思路,既然是Hybrid APP, 那就是可以用html的方式实现,启动引导页比较常见的展示方式是滑动,那么我们就可以使用图片 ...

  4. 安卓第一次启动引导页使用ViewPager实现

    我们在安装某个APP的时候,基本都会有一个引导页的提示,他们可以打广告,或者介绍新功能的加入和使用说明等.一般都支持滑动并且下面有几个点,显示共有多少页和当前图片的位置,在IOS上这个实现起来比较简单 ...

  5. Android:启动引导页实现

    前言 基本上现在所有的应用都会有一个欢迎界面,在欢迎界面对应用做一个整体的介绍,然后在跳入到主界面,这次要说的这个引导页就是带翻页的引导页.效果如下所示

  6. 使用Webview实现app启动引导页

    效果如下: 首先需要一个html页面及相应的js和css支持放在assets目录下(如果没有这个目录请项目上右键-new-folder-assets) 配置权限: <uses-permissio ...

  7. iOS-王云鹤 APP首次启动显示用户指导

    这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单 我们只需要在一个类里面写好用户引导页面  基本上都是使用UIScrollView 来实现, 新建一个继承于UIViewController ...

  8. 应用app首次进入导航页动画

    import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActi ...

  9. 怎样做一个iOS App的启动分层引导动画?

    一. 为什么要写这篇文章? 这是一个很古老的话题,从两年前新浪微博开始使用多层动画制作iOS App的启动引导页让人眼前一亮(当然,微博是不是历史第一个这个问题值得商榷)之后,各种类型的引导页层出不穷 ...

随机推荐

  1. MAC 下安装RabbitMQ

    1.使用brew来安装 RabbitMQ(地址:http://www.rabbitmq.com/install-standalone-mac.html ) 2.安装目录 /usr/local/Cell ...

  2. c#-FrameWork01

    Framwork ArrayList l  集合类似于数组,同样是用来存放连续数据的,但集合的功能比数组更强大 l  集合和数组的最大区别:数组一旦定义以后就无法改变其大小,而集合可以动态的改变其大小 ...

  3. AngularJS-自定义过滤器 ng-repeat 求和

    <!DOCTYPE html> <html lang="zh_CN"> <head> <meta charset="UTF-8& ...

  4. hibernate事务管理 (jdbc jta)

    hibernate的两种事务管理jdbc 和jta方式.下边说说两者的区别一.说明一下jdbc和jta方式事务管理的区别:JDBC事务由Connnection管理,也就是说,事务管理实际上是在JDBC ...

  5. js系列之js简介

    该系列教程都来源于:廖雪峰老师的博客 JavaScript是世界上最流行的脚本语言,因为你在电脑.手机.平板上浏览的所有的网页,以及无数基于HTML5的手机App,交互逻辑都是由JavaScript驱 ...

  6. PAT 1070 Mooncake

    题目意思能搞成这样我也是服了这个女人了 #include <cstdio> #include <cstdlib> #include <vector> #includ ...

  7. 01常用<meta>总结

    meta标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的,它可以用于浏览器(显示内容/重新加载页面),搜索引擎(关键字),或者其他web服务. 一.页面设置 <!- ...

  8. 日期函数new Date()浏览器兼容性问题

    项目上与时间相关的地方特别多,与时间格式相关都使用了moment.js轻量级日期处理库,在开发中出现了几次浏览器兼容性问题,所以总结一下new Date()和moment.js在各大浏览器中兼容性问题 ...

  9. linux中启动网卡报错:Bringing up interface eth1: Error: Connection activation failed

    在重启linux网络服务的时候提示: Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/2 并且产生报错 ...

  10. 【java开发系列】—— 深克隆和浅克隆

    Java支持我们对一个对象进行克隆,通常用在装饰模式和原型模式中.那么什么是深克隆,什么是浅克隆呢. [浅克隆],通常只是对克隆的实例进行复制,但里面的其他子对象,都是共用的. [深克隆],克隆的时候 ...