ScrollAndPageController


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


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章