1.在sb中添加scrollView和pageControl. 或代码添加
分页控制器的页数设置,和 分页控制器中'点'的颜色设置
2.设置scrollView,并添加imageview
CGFloat imgW = 300; CGFloat imgH = 130; CGFloat imgY = 0; // 1.动态创建5个UIImageView加到UIScrollView中. 一共5页,#define IMAGECOUNT 5 for (int i = 0; i < IMAGECOUNT; i++) { // 创建UIImageView UIImageView *imgView = [[UIImageView alloc] init]; // 设置图片 NSString *imgName = [NSString stringWithFormat:@"img_0%d",i]; imgView.image = [UIImage imageNamed:imgName]; // 设置frame CGFloat imgX = imgW * i; imgView.frame = CGRectMake(imgX, imgY, imgW, imgH); // 把UIImageView加到self.scrollView里面 [self.scrollView addSubview:imgView]; } // 2.设置UIScrollView的内容大小 self.scrollView.contentSize = CGSizeMake(imgW * IMAGECOUNT, 0); // 3.实现分页,默认以self.scrollView的宽度来分页.
self.scrollView.pagingEnabled = YES; // 4.隐藏滚动条 self.scrollView.showsHorizontalScrollIndicator = NO;
3. 将pageControl和ScrollView相关联,需要设置UIPageControl的一些属性
// self.pageControl.numberOfPages = 5;//分页器的总页数 // self.pageControl.currentPage = 0;//当前页
//遵守协议
@interface ViewController ()<UIScrollViewDelegate>
//设置代理 self.scrollView.delegate = self;
//当scrollView滚动的时候调用 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { // 获取当前scrollView的contentOffset CGPoint point = scrollView.contentOffset; CGFloat scrollW = scrollView.frame.size.width;
//当图片滚动超过半张时,让分页器显示下一页.所以+scrollW * 0.5 int page = (point.x + scrollW * 0.5)/ scrollW; self.pageControl.currentPage = page; }
4.添加定时器,实现自动滚动
//每隔1s,调用nextImage方法,显示下一页
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(nextImage) userInfo:nil repeats:YES];
// 显示下一页 - (void)nextImage { // 1.获取当前的页数 NSInteger page = self.pageControl.currentPage; // 判断是否滚到了最后一页 if (page == self.pageControl.numberOfPages - 1) { page = 0; } else { page++; } // 2.根据当前要显示的页数,设置UIScrollView的contentOffset偏移量的X值 CGFloat offSetX = page * self.scrollView.frame.size.width; // 3.设置contentOffset,进行滚动 [self.scrollView setContentOffset:CGPointMake(offSetX, 0) animated:YES]; }