iOS开发------引导页

        每个app都会有引导页,  由于引导页是在第一次启动这个app的时候才会出现, 出于他的这个特点,  我是这样做的.

        首先, 先把引导页所在的控制器设置为根视图控制器, 当引导页展示完之后, 再将正常时app的控制器设置为根视图控制器.

#import "BaseViewController.h"

@interface MyViewController : BaseViewController

@end

#import "MyViewController.h"

@interface MyViewController (){

// 创建页码控制器

UIPageControl *pageControl;

// 判断是否是第一次进入应用

BOOL flag;

}

@end

@implementation MyViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view.

self.view.backgroundColor = [UIColor whiteColor];

[self creatSub];

}

- (void)creatSub {

UIScrollView *myScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT)];

for (int i=0; i<4; i++) {

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"引导%d.png",i+1]];

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(WIDTH * i, 0, WIDTH, HEIGHT)];

// 在最后一页创建按钮

if (i == 3) {

// 必须设置用户交互 否则按键无法操作

imageView.userInteractionEnabled = YES;

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];

button.frame = CGRectMake(WIDTH *2/ 5, HEIGHT * 7 / 8, WIDTH / 5, HEIGHT / 16);

[button setTitle:@"点击进入" forState:UIControlStateNormal];

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

button.layer.borderWidth = 2;

button.layer.cornerRadius = 5;

button.clipsToBounds = YES;

button.layer.borderColor = [UIColor blackColor].CGColor;

[button addTarget:self action:@selector(go:) forControlEvents:UIControlEventTouchUpInside];

[imageView addSubview:button];

}

imageView.image = image;

[myScrollView addSubview:imageView];

}

myScrollView.bounces = NO;

myScrollView.pagingEnabled = YES;

myScrollView.showsHorizontalScrollIndicator = NO;

myScrollView.contentSize = CGSizeMake(WIDTH * 4, HEIGHT);

myScrollView.delegate = self;

[self.view addSubview:myScrollView];

pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, HEIGHT * 15 / 16, WIDTH / 3, HEIGHT / 16)];

pageControl.centerX = WIDTH/2;

// 设置页数

pageControl.numberOfPages = 4;

// 设置页码的点的颜色

pageControl.pageIndicatorTintColor = RGBA(187, 192, 191, 1);

// 设置当前页码的点颜色

pageControl.currentPageIndicatorTintColor = RGBA(78, 170, 155, 1);

[self.view addSubview:pageControl];

}

#pragma mark - UIScrollViewDelegate

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{

// 计算当前在第几页

pageControl.currentPage = (NSInteger)(scrollView.contentOffset.x / [UIScreen mainScreen].bounds.size.width);

}

// 点击按钮保存数据并切换根视图控制器

- (void) go:(UIButton *)sender{

flag = YES;

NSUserDefaults *useDef = [NSUserDefaults standardUserDefaults];

// 保存用户数据

[useDef setBool:flag forKey:@"notFirst"];

[useDef synchronize];

// 发送通知, 修改根视图控制器  to  appdelegate

[[NSNotificationCenter defaultCenter] postNotificationName:@"rootVC" object:nil];

}

当引导页展示完成后, 修改根视图控制器, 这样就ok了.

你可能感兴趣的:(iOS开发------引导页)