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