您的位置:首页 > 移动开发 > IOS开发

iOS简单引导页面的实现,只在用户第一次登录时出现,以后不出现

2016-01-03 17:25 477 查看


Appdelegate.m

 //用持久化对象去存储一个字符串作为标识,如果找到标识,说明用户不是第一次登录,就加载主界面,如果找不到,说明用户是第一次登录,加载引导界面.
    if (![[NSUserDefaults standardUserDefaults] boolForKey:@"abc"]) {
        UserGuideViewController *guideVC = [[UserGuideViewController alloc] init];
        self.window.rootViewController = guideVC;
        [guideVC release];
    }else{
        RootViewController *rootVC = [[RootViewController alloc] init];
        self.window.rootViewController = rootVC;
        [rootVC release];
    }

viewController.m

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    //创建scrollView
    [self layoutScrollView];
    //创建UIImageView
    [self layoutImageView];
    //创建pageControl
    [self layoutPageControl];

    
}

#pragma mark -布局scrollView
- (void)layoutScrollView{
    self.scrollView = [[UIScrollView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.scrollView.contentSize = CGSizeMake(kScreenWidth * 6, kScreenHeight);
    self.scrollView.delegate = self;
    self.scrollView.pagingEnabled = YES;
    self.scrollView.showsHorizontalScrollIndicator = NO;
    self.scrollView.showsVerticalScrollIndicator = NO;
    [self.view addSubview:self.scrollView];
    [self.scrollView release];
}

#pragma mark -布局图片
- (void)layoutImageView{
    for (int i = 0; i < 6; i++) {
        UIImageView *imageV = [[UIImageView alloc] initWithFrame:CGRectMake(kScreenWidth * i, 0, kScreenWidth, kScreenHeight)];
        NSString *imageName = [NSString stringWithFormat:@"v6_guide_%d", i + 1];
        NSString *filePath = [[NSBundle mainBundle] pathForResource:imageName ofType:@"png"];
        imageV.image = [UIImage imageWithContentsOfFile:filePath];

        //判断如果图片是最后一张,给其添加轻拍手势
        if (i == 5) {
            imageV.userInteractionEnabled = YES;
            UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
            [imageV addGestureRecognizer:tap];
        }
        [self.scrollView addSubview:imageV];

        
    }
}

#pragma mark - TapAction
- (void)handleTap:(UITapGestureRecognizer *)tap{

    //1.将字符串持久化存储
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"abc"];
    //立刻同步(立刻存储)
    [[NSUserDefaults standardUserDefaults] synchronize];
    //2.进入主界面
    RootViewController *rootVC = [[RootViewController alloc] init];
    [UIApplication sharedApplication].keyWindow.rootViewController = rootVC;
    [rootVC release];
}

#pragma mark -布局pageControl
- (void)layoutPageControl{
    self.pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake((kScreenWidth - 120) / 2, 580, 120, 20)];
    self.pageControl.numberOfPages = 6;
    self.pageControl.pageIndicatorTintColor = [UIColor cyanColor];
    self.pageControl.currentPageIndicatorTintColor = [UIColor redColor];
    [self.pageControl addTarget:self action:@selector(handlePageControl:) forControlEvents:UIControlEventValueChanged];
    self.pageControl.currentPage = 0;
    [self.view addSubview:self.pageControl];
    [self.pageControl release];
}

- (void)handlePageControl:(UIPageControl *)pageControl{
    [self.scrollView setContentOffset:CGPointMake(pageControl.currentPage * kScreenWidth, 0) animated:YES];
}

#pragma mark - UIScrollViewDelegate
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    self.pageControl.currentPage = scrollView.contentOffset.x / kScreenWidth;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息