zoukankan      html  css  js  c++  java
  • iOS 之新特性界面

    1、什么事新特性界面?

    新特性界面就是第一次下载程序出现的界面,他的用途是帮助用户快速了解这款APP,所有说还是很有必要学一下的。

    2、如何实现新特性界面?

    实现思路:从本质上看,新特性界面就是一个全屏的ScrollView而已,但是要在程序一进来的时候判断是否是第一次使用程序。所有要在程序一启动判断版本号,这里有两种情况。一种是:没有版本号,这种肯定显示新特性界面的。另一种就是版本号低于现在程序的也要显示新特性界面(如果有本版本的新特性界面的话)。

    逻辑关系如下:

    具体代码如下:

    1)APPDelegate里面的代码

     1 NSString * key = @"CFBundleVersion";
     2     // 取出沙盒中存储的上次使用软件的版本号
     3     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
     4     NSString *lastVersion = [defaults stringForKey:key];
     5     
     6     // 获得当前软件的版本号
     7     NSString *currentVersion = [NSBundle mainBundle].infoDictionary[key];
     8     if ([currentVersion isEqualToString:lastVersion]) {
     9         NextViewController * nextVC = [[NextViewController alloc]init];
    10         UINavigationController * nav = [[UINavigationController alloc]initWithRootViewController:nextVC];
    11         
    12         self.window.rootViewController = nav;
    13     } else { // 新版本
    14         ViewController * vc = [[ViewController alloc]init];
    15         UINavigationController * nav = [[UINavigationController alloc]initWithRootViewController:vc];
    16         
    17         self.window.rootViewController = nav;
    18         // 存储新版本
    19         [defaults setObject:currentVersion forKey:key];
    20         [defaults synchronize];
    21     }

    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

  • 相关阅读:
    完美解决微信端设置title失败问题
    linux下的find&&grep查找命令
    微信开发二三事
    干掉chrome下input恶心的黄色背景
    关于.gitignore文件使用说明
    HTTPie:一个不错的 HTTP 命令行客户端
    退出登录功能改变window的rootviewcontroller输入框键盘不会收起
    coredata操作工具
    并发编程gcd粗暴记忆法
    网友的百度移动云可穿戴部门的面试经历
  • 原文地址:https://www.cnblogs.com/fengzhihao/p/5307751.html
Copyright © 2011-2022 走看看