1>加载一个scroll滚动视图,设置11张连续滚动的背景图片,为了实现可以循环滑动,并且实现在第一张跳转到最后一张时实现无空白的切换,先把最后一张图片加载到第一个位置,当划过去之后再立即跳转到最后一个位置。
- (void)_loadScroll{
UIScrollView * scroll=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];
for(int i=0;i<11;i++){
UIImageView * imageView=[[UIImageView alloc]initWithFrame:CGRectMake(kWidth*(i+1), 0, kWidth, kHeight)];
imageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i+1]];
[scroll addSubview:imageView];
}
//把最后一张放在第一个位置
UIImageView * imageView1=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];
imageView1.image=[UIImage imageNamed:[NSString stringWithFormat:@"11.jpg"]];
[scroll addSubview:imageView1];
//把第一张放在最后一个位置
UIImageView * imageView2=[[UIImageView alloc]initWithFrame:CGRectMake(kWidth*12, 0, kWidth, kHeight)];
imageView2.image=[UIImage imageNamed:[NSString stringWithFormat:@"1.jpg"]];
[scroll addSubview:imageView2];
scroll.contentSize=CGSizeMake(kWidth*13, 0);
scroll.showsHorizontalScrollIndicator=NO;
scroll.pagingEnabled=YES;
scroll.delegate=self;
//让开始显示页面是第一幅图片
CGPoint point=scroll.contentOffset;
point.x=kWidth;
scroll.contentOffset=point;
[self.view addSubview:scroll];
设置一个页码显示的UIPageController显示当前滚动到第几个视图
page=[[UIPageControl alloc]initWithFrame:CGRectMake(kWidth/2-100, kHeight*0.85, 200, 20)];
page.pageIndicatorTintColor=[UIColor redColor];
page.currentPageIndicatorTintColor=[UIColor greenColor];
page.numberOfPages=11;
[self.view addSubview:page];
}
2>判断当前是否滚动到第一个或者最后一个,实现页面跳转,这是一幅即将由第一张向前滑动到最后一张的跳转,图片和page同时跳转
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGPoint point=scrollView.contentOffset;
if(point.x<=0){
point.x=kWidth*11;
scrollView.contentOffset=point;
}
if(point.x>=12*kWidth){
point.x=kWidth;
scrollView.contentOffset=point;
}
NSInteger pages=point.x/(kWidth+1);
page.currentPage=pages;
}