#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)];
}