UIScrollView的分页和使用

UIScrollView同样是继承UIView,主要是对于其他组件内容一屏显示不完整,所以采用分屏显示。

- (void)viewDidLoad

{

    [super viewDidLoad];

    

    UIScrollView *scrol=[[UIScrollView alloc]init];

    //可视范围

    scrol.frame=self.view.bounds;

    _scroll=scrol;

    [self.view addSubview:scrol];

    

    CGFloat scrolWidth=scrol.frame.size.width;

    CGFloat scrolHeight=scrol.frame.size.height;

    

    //添加所有的imagesview

   // [UIImage imageNamed:@"pages.bundle/1.jpg"];

    for (int i=1; i<=5; i++) {

        NSString *name=[NSString stringWithFormat:@"pages.bundle/%d.jpg",i];

        UIImage *image=[UIImage imageNamed:name];

        

        UIImageView *imageView=[[UIImageView alloc]init];

        imageView.image=image;

        CGFloat x=(i-1)*scrol.frame.size.width;

        imageView.frame=CGRectMake(x,0, scrolWidth, scrolHeight);             

        [scrol addSubview:imageView];

    }

    //设置滚动范围

    scrol.contentSize=CGSizeMake(kCount*scrolWidth, 0);

    //隐藏水平滚动条

    scrol.showsHorizontalScrollIndicator=NO;

    //设置分页

    scrol.pagingEnabled=YES;   

    //添加pagecontrol

    UIPageControl *pageControl=[[UIPageControl alloc]init];

    pageControl.bounds=CGRectMake(0, 0, 150, 50);

    pageControl.center=CGPointMake(scrolWidth*0.5, scrolHeight-50);

    //设置页数

    pageControl.numberOfPages=kCount;

    //当前选中页码

    pageControl.currentPageIndicatorTintColor=[UIColor grayColor];

    //其他页码

    pageControl.pageIndicatorTintColor=[UIColor blackColor];

    

    [pageControl addTarget:self action:@selector(pageChange) forControlEvents:UIControlEventValueChanged];

    //添加到控制器view

    [self.view addSubview:pageControl];

    _control=pageControl;

    //设置代理

    scrol.delegate=self;

    //弹簧效果

    scrol.bounces=NO;

}

-(void)pageChange{

    int page=_control.currentPage;

    CGFloat offSetX=page*_scroll.frame.size.width;

    [UIView beginAnimations:nil context:nil];

    _scroll.contentOffset=CGPointMake(offSetX, 0);

    [UIView commitAnimations];

    

}

//滚动代理  scroll减速完毕调用

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    //获取滚动位置

    //页码

   int pageNo= scrollView.contentOffset.x/scrollView.frame.size.width;

    _control.currentPage=pageNo;

}



总结:

1.主要属性scrol.contentSize,设置滚动范围,而scrol.frame是可视范围

2.如果要监听分页操作要控制器充当pagecontrol的代理

3.scrollViewDidEndDecelerating,scroll减速完毕调用,也就是说当用户手松开的那一刻



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值