#import "ViewController.h"
@interface ViewController ()
@property(retain,nonatomic)UIPageControl *pageControl;
@property(retain,nonatomic)UIScrollView *scrollview;
@end
@implementation ViewController
@synthesize pageControl,scrollview;
- (void)viewDidLoad
{
[superviewDidLoad];
self.view.backgroundColor=[UIColorwhiteColor];
//定义一个scrollview
scrollview=[[UIScrollViewalloc] initWithFrame:CGRectMake(0,0, self.view.frame.size.width,160)];
//定义scrollview的内容尺寸
scrollview.contentSize=CGSizeMake(self.view.frame.size.width*2,160);
scrollview.backgroundColor=[UIColorblackColor];
//隐藏下边右边滚动条
scrollview.showsVerticalScrollIndicator=NO;
scrollview.showsHorizontalScrollIndicator=NO;
//设置delegate
scrollview.delegate=self;
//设置scrollview可以滚动
scrollview.scrollEnabled=YES;
//设置使用翻页
scrollview.pagingEnabled=YES;
//bounces 默认是YES,就是滚动超过边界会反弹,即有反弹回来的效果。若是NO,则滚动到达边界会立刻停止
scrollview.bounces=NO;
//定义两个需要切换的frame,以lable为例子
UILabel *lable1=[[UILabel alloc] initWithFrame:CGRectMake(0,0, self.view.frame.size.width,160)];
lable1.backgroundColor=[UIColorredColor];
lable1.text=@"page1";
UILabel *lable2=[[UILabelalloc] initWithFrame:CGRectMake(self.view.frame.size.width,0,self.view.frame.size.width,160)];
lable2.backgroundColor=[UIColorblueColor];
lable2.text=@"page2";
//把生成的frame添加到scrollview,把scrollview添加到当前视图
[self.viewaddSubview:scrollview];
[scrollviewaddSubview:lable2];
[scrollviewaddSubview:lable1];
//定义一个pageControll
pageControl=[[UIPageControlalloc] initWithFrame:CGRectMake(150,140, 20, 20)];
//指定拖拉的页面个数
pageControl.numberOfPages=2;
//指定默认选中的pagecontrol的值,0为第一个,选中第一个白点
pageControl.currentPage=0;
//绑定pagecontrol选项对应的触发方法
[pageControladdTarget:selfaction:@selector(changePage:)forControlEvents:UIControlEventValueChanged];
//把生成的pageControl添加到当前视图
[self.viewaddSubview:pageControl];
// Do any additional setup after loading the view, typically from a nib.
}
#pragma mark 重写scrollview委托方法
//当滚动时触发
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//设置当滚动x轴超过290时,当前页page=?
int page=scrollView.contentOffset.x/290;
//翻页白点等于当前页
pageControl.currentPage=page;
}
#pragma mark 实现pagecontroll小白点改变时,frame的切换
-(IBAction)changePage:(id)sender{
//首先获取当前pagecontroll的值
int page=pageControl.currentPage;
[scrollviewsetContentOffset:CGPointMake(self.view.frame.size.width*page,0)];
}