ScrollAndPageController

来源:互联网 发布:linux反向解析 编辑:程序博客网 时间:2024/05/16 04:02


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


}


0 0
原创粉丝点击