PageControl一般和ScrollView配合使用
//创建pagecontrol
self.pageControl = [[[UIPageControl alloc] init] autorelease];
//设置在屏幕的底端
self.pageControl.frame = CGRectMake(0, CGRectGetMaxY(self.frame) - 50, CGRectGetWidth(self.frame), 50);
//设置pagecontrol颜色的透明度
self.pageControl.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.2];
//添加在视图上
[self addSubview:self.pageControl];
添加图片
CGFloat kWidth = self.view.frame.size.width;
CGFloat kHeight = self.view.frame.size.height;
CGFloat kWidth = self.view.frame.size.width;
CGFloat kHeight = self.view.frame.size.height;
for (int i = 0; i < 8; i++) {
NSString * s = [NSString stringWithFormat:@"%d.jpeg", i];
UIImage * image = [UIImage imageNamed:s];
//创建图片
UIImageView * imv = [[UIImageView alloc] initWithImage:image];
//设置图片frame
imv.frame = CGRectMake(kWidth * i, 0, kWidth, kHeight);
//添加到scrollView上
[self.rootV.scrollView addSubview:imv];
}
//设置scrollView的contentsize
self.rootV.scrollView.contentSize = CGSizeMake(kWidth * 8, kHeight);
//设置scrollView的翻页功能
self.rootV.scrollView.pagingEnabled = YES;
//设置scrollView的代理
self.rootV.scrollView.delegate = self;
// pageControl设置
// 设置页数
self.rootV.pageControl.numberOfPages = 8;
// 添加点击事件
[self.rootV.pageControl addTarget:self action:@selector(pageControlAciton:) forControlEvents:UIControlEventTouchUpInside];
- (void)pageControlAciton:(UIPageControl *)sender
{
//打印当前点击的pageControl的编号
NSLog(@"%ld", sender.currentPage);
[UIView animateWithDuration:0.5 animations:^{
//通过offset偏移量,显示点击的scrollView
self.rootV.scrollView.contentOffset = CGPointMake(kWidth * sender.currentPage, 0);
}];
}
#pragma mark --- UIScrollViewDelegate
//滚动中实现pageControl和scrollView的对应
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
self.rootV.pageControl.currentPage = scrollView.contentOffset.x / kWidth;
}
//减速完成后pageControl和scrollView的对应 apple推荐方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
//偏移量中的x / 图片的宽度 等于PageControl中当前的数字
self.rootV.pageControl.currentPage = scrollView.contentOffset.x / kWidth;
}