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

  • 相关阅读:
    自定义404页面
    authenticate的执行流程与重写
    装饰器login_required
    一、词法结构
    Django——用户认证
    多线程
    Django框架4——form表单
    Django框架3——模型
    Django框架2——模板
    Anaconda 安装tensorflow出现错误
  • 原文地址:https://www.cnblogs.com/fengzhihao/p/5307751.html
Copyright © 2011-2022 走看看