引导页滑动跳转主界面
记得我刚毕业工作的时候,还是很懵懂,入职第一家公司 ,是一个创业公司,二三十个人,工作特别紧张.每天压力都感觉好大呀!每天都有大量的工作,都有无数的新知识!那个时候,没有既没有工作经验,又没有项目经验自己,完成任务而很慢了咯!而且每天都会有老板在催进度!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
对于大神来说,这是很简单的问题,希望这对于那些刚入职,刚毕业的那些有这样需求的小伙伴有所帮助