iOS新特性引导页

Posted 码锋窝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS新特性引导页相关的知识,希望对你有一定的参考价值。

有一个注意点:

获取版本号
个叫做Version,一个叫做Build,这两个值都可以在Xcode 中选中target,点击“Summary”后看到。 Version在plist文件中的key是“CFBundleShortVersionString”,和AppStore上的版本号保持一致,Build在plist中的key是“CFBundleVersion”,代表build的版本号,该值每次build之后都应该增加1。这两个值都可以在程序中通过下面的代码获得:
 
1.Version
NSString *key = @"CFBundleShortVersionString";
2.build
NSString *key =@"CFBundleVersion";

 

1.在AppDelegate.m

 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 2     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
 3 
 4     self.window.backgroundColor = [UIColor whiteColor];
 5 
 6     NSString *key = @"CFBundleShortVersionString";
 7     //上一个版本号,存沙盒
 8     NSString *lastVersion = [[NSUserDefaults standardUserDefaults] objectForKey:key];
 9     //当前版本号
10     NSString *currentVersion = [NSBundle mainBundle].infoDictionary[key];
11     NSLog(@"前面%@----当前%@",lastVersion,currentVersion);
12     
13     if ([currentVersion isEqualToString:lastVersion]) {
14         self.window.rootViewController = [ViewController new]; //为真表示已有文件 曾经进入过主页
15     }else{
16         self.window.rootViewController =[LGFNEWfeatureViewController new];//为假表示没有文件,没有进入过主页
17         [[NSUserDefaults standardUserDefaults] setObject:currentVersion forKey:key];
18         [[NSUserDefaults standardUserDefaults] synchronize];
19     }
20     [self.window makeKeyAndVisible];
21     
22     return YES;
23 }

 

2.在新特性的VC中:

 1 #import "LGFNEWfeatureViewController.h"
 2 #import "ViewController.h"
 3 
 4 #define LGFNEWFeatureCount 3
 5 @interface LGFNEWfeatureViewController ()<UIScrollViewDelegate>
 6 @property(nonatomic,strong)UIScrollView *scrollView;
 7 
 8 @property(nonatomic,strong)UIPageControl *pageControl;
 9 
10 @end
11 
12 @implementation LGFNEWfeatureViewController
13 
14 - (void)viewDidLoad {
15     [super viewDidLoad];
16     // Do any additional setup after loading the view.
17     [self setScrollerView];
18 }
19 
20 -(void)setScrollerView{
21     self.scrollView = [UIScrollView new];
22     _scrollView.frame = self.view.bounds;
23     _scrollView.contentSize = CGSizeMake(LGFNEWFeatureCount *self.view.frame.size.width, 0);
24     _scrollView.bounces = NO;
25     _scrollView.pagingEnabled = YES;
26     _scrollView.showsHorizontalScrollIndicator =NO;
27     [self.view addSubview:_scrollView];
28     for (int i =0; i<LGFNEWFeatureCount; i++) {
29         UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.frame.size.width*i, 0, self.view.frame.size.width, self.view.frame.size.height)];
30         imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d",i+1]];
31         [_scrollView addSubview:imageView];
32         if (i == LGFNEWFeatureCount-1) {
33             [self setupLastImageView:imageView];
34         }
35     }
36     _scrollView.delegate = self;
37     
38     self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(20, self.view.frame.size.height-30, self.view.frame.size.width-30,30)];
39     _pageControl.numberOfPages = LGFNEWFeatureCount;
40     _pageControl.currentPageIndicatorTintColor =[UIColor orangeColor];
41     _pageControl.userInteractionEnabled = NO;
42     [self.view addSubview:_pageControl];
43     
44 }
45 
46 -(void)scrollViewDidScroll:(UIScrollView *)scrollView{
47     self.pageControl.currentPage = self.scrollView.contentOffset.x/self.view.frame.size.width;
48 }
49 
50 
51 -(void)setupLastImageView:(UIImageView*)imageView{
52     //开启用户交互
53     imageView.userInteractionEnabled = YES;
54     //1.分享
55     UIButton *sharedBtn =[[UIButton alloc] initWithFrame:CGRectMake(80, self.view.frame.size.height-210, self.view.frame.size.width*0.5,self.view.frame.size.height*0.3)];
56     
57     [sharedBtn setImage:[UIImage imageNamed:@"shared"] forState:UIControlStateNormal];
58      [sharedBtn setImage:[UIImage imageNamed:@"sharedselect"] forState:UIControlStateSelected];
59     [sharedBtn setTitle:@"分享给大家" forState:UIControlStateNormal];
60     sharedBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0);
61     sharedBtn.titleLabel.font = [UIFont systemFontOfSize:18];
62     [sharedBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
63     [sharedBtn addTarget:self action:@selector(sharedBtnClick:) forControlEvents:UIControlEventTouchUpInside];
64     [imageView addSubview:sharedBtn];
65     
66     //2.开始程序首页
67     UIButton *startBtn = [[UIButton alloc] initWithFrame:CGRectMake(120, self.view.frame.size.height*0.88, self.view.frame.size.width*0.4,self.view.frame.size.height*0.05)];
68     startBtn.layer.cornerRadius = 12.0f;
69     startBtn.layer.masksToBounds =YES;
70     startBtn.backgroundColor = [UIColor orangeColor];
71     [startBtn setTitle:@"开启APP之旅" forState:UIControlStateNormal];
72     [startBtn addTarget:sharedBtn action:@selector(startBtnClick) forControlEvents:UIControlEventTouchUpInside];
73     [imageView addSubview:startBtn];
74     
75 }
76 
77 -(void)sharedBtnClick:(UIButton *)sharedBtn{
78     sharedBtn.selected = !sharedBtn.selected;
79 }
80 
81 -(void)startBtnClick{
82     UIWindow *win =[UIApplication sharedApplication].keyWindow;
83     win.rootViewController = [ViewController new];
84 }

 



 



以上是关于iOS新特性引导页的主要内容,如果未能解决你的问题,请参考以下文章

[iOS] App引导页的简单实现 (Swift 2)

iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ②)

引导页实现代码--iOS

iOS指导用户如何使用的功能 ios引导页

iOS 启动页和引导页的分割适配法

iOS引导页动画(封装好)