• 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

  • 相关阅读:
    Linux安装jdk
    VUE和Element:Vue和Element基础使用,综合案例学生列表实现
    jQuery-css(border)样式内容火狐无法获取而谷歌可以获取问题问题
    Ajax:原生js实现Ajax,jQuery的get/post方式实现Ajax,jQuery的通用方式实现Ajax;JSON转换;搜索联想;瀑布流分页,点击按钮分页
    常用正则表达式大全,如何写出高效率的正则表达式?
    JQuery:JQuery基本语法,JQuery选择器,JQuery DOM,综合案例 复选框,综合案例 随机图片
    操作系统的一些概念题(1)
    谓词逻辑与归结原理的一些概念题
    模拟退火 Simulated annealing
    遗传算法Genetic Algorithm
  • 原文地址:https://www.cnblogs.com/fengzhihao/p/5307751.html
Copyright © 2020-2023  润新知