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

原文地址:https://www.cnblogs.com/fengzhihao/p/5307751.html