引导页滑动跳转主界面

2017-01-17  本文已影响204人  薰衣草儿

        记得我刚毕业工作的时候,还是很懵懂,入职第一家公司 ,是一个创业公司,二三十个人,工作特别紧张.每天压力都感觉好大呀!每天都有大量的工作,都有无数的新知识!那个时候,没有既没有工作经验,又没有项目经验自己,完成任务而很慢了咯!而且每天都会有老板在催进度!oh,my god  我都不知道我是怎么熬过来的.

记得当时让我写一个引导页,对于整个项目,引导页算是再简单不过的了,但是呢!项目中要求,必须是滑动进入主页面,没有那个@"立即体验"或者@"立即进入"的那个进入按钮! 额 ! 其实实现的方法有很多!但是对于当时的自己完全懵逼了. 我刚开始是用UICollectionView实现的,可是 cell的触摸事件总是不能触发!  我也忘了最后是怎么实现的咯! 但是这个问题令我印象挺深刻的,所以今天工作量不是很大,就写一个引导页滑动调转到主界面. 实现方法是主要是scrollview 在scrollview的代理事件中的几行代码

来看一下GuideController.m 中的实现方法吧

#import "GuideController.h"

#import "ViewController.h"

#define kWidth [UIScreen mainScreen].bounds.size.width

#define kHeight [UIScreen mainScreen].bounds.size.height

@interface GuideController ()

//用来存储所有引导页的数组

@property (nonatomic,strong)NSArray *bgImgsArr;

//用来滚动的scrollview

@property (nonatomic,strong) UIScrollView *scrollView;

//显示页数圆点的pageControl

@property (nonatomic,strong)UIPageControl *pageControl;

@end

@implementation GuideController

// 标记

static NSString * const reuseIdentifier = @"Cell";

- (void)viewDidLoad {

[super viewDidLoad];

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];

scrollView.delegate = self;

[self.view addSubview:scrollView];

self.scrollView = scrollView;

//设置scrollview的contentsize属性,让界面可以滚动

self.scrollView.contentSize = CGSizeMake(self.bgImgsArr.count * self.scrollView.frame.size.width, 0);

//取消滚动条

self.scrollView.showsVerticalScrollIndicator = NO;

self.scrollView.showsHorizontalScrollIndicator = NO;

//设置分页效果

self.scrollView.pagingEnabled = YES;

//创建UIImageView

for (int i = 0; i < self.bgImgsArr.count; i ++) {

UIImageView *imageView  = [[UIImageView alloc] init];

CGFloat imageViewX = i * kWidth;

imageView.frame = CGRectMake(imageViewX, 0,kWidth, self.scrollView.frame.size.height);

//添加图片

imageView.image = self.bgImgsArr[i];

//向scrollview中添加几张图片

[self.scrollView addSubview:imageView];

}

//设置pageControl的总个数

self.pageControl.numberOfPages = self.bgImgsArr.count;

//设置pagecontrol当前处于第几个

self.pageControl.currentPage = 0;

}

#pragma mark - UIScrollViewDelegate

//界面滚动的时候调用

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

NSInteger page  = (scrollView.contentOffset.x + scrollView.frame.size.width*0.5)/scrollView.frame.size.width;

self.pageControl.currentPage = page;

CGPoint point = self.scrollView.contentOffset;

//判断point是否处于最后一页

if (point.x > self.scrollView.frame.size.width * (self.bgImgsArr.count - 1)) {

//获取应用程序对象

UIApplication *app = [UIApplication sharedApplication];

app.keyWindow.rootViewController = [[ViewController alloc] init];

}else{

point.x += self.scrollView.frame.size.width;

}

}

#pragma mark - 懒加载

- (NSArray *)bgImgsArr {

if (!_bgImgsArr) {

_bgImgsArr = @[

[UIImage imageNamed:@"引导页-1"],

[UIImage imageNamed:@"引导页-2"],

[UIImage imageNamed:@"引导页-3"],

[UIImage imageNamed:@"引导页-4"],

];

}

return _bgImgsArr;

}

@end

如果不怎么看清 下面有个demo连接:http://www.jianshu.com/writer#/notebooks/8035700/notes/8521567

对于大神来说,这是很简单的问题,希望这对于那些刚入职,刚毕业的那些有这样需求的小伙伴有所帮助

上一篇下一篇

猜你喜欢

热点阅读