UIScrollView+UIpageControl实现图片的循环滚动切换


    1>加载一个scroll滚动视图,设置11张连续滚动的背景图片,为了实现可以循环滑动,并且实现在第一张跳转到最后一张时实现无空白的切换,先把最后一张图片加载到第一个位置,当划过去之后再立即跳转到最后一个位置。


- (void)_loadScroll{

    UIScrollView * scroll=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];

    for(int i=0;i<11;i++){

        UIImageView * imageView=[[UIImageView alloc]initWithFrame:CGRectMake(kWidth*(i+1), 0, kWidth, kHeight)];

        imageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg",i+1]];

        [scroll addSubview:imageView];

    }

    //把最后一张放在第一个位置

    UIImageView * imageView1=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];

    imageView1.image=[UIImage imageNamed:[NSString stringWithFormat:@"11.jpg"]];

    [scroll addSubview:imageView1];

    //把第一张放在最后一个位置

    UIImageView * imageView2=[[UIImageView alloc]initWithFrame:CGRectMake(kWidth*12, 0, kWidth, kHeight)];

    imageView2.image=[UIImage imageNamed:[NSString stringWithFormat:@"1.jpg"]];

    [scroll addSubview:imageView2];

    

    scroll.contentSize=CGSizeMake(kWidth*13, 0);

    scroll.showsHorizontalScrollIndicator=NO;

    scroll.pagingEnabled=YES;

    scroll.delegate=self;


    //让开始显示页面是第一幅图片

    CGPoint point=scroll.contentOffset;

    point.x=kWidth;

    scroll.contentOffset=point;

    [self.view addSubview:scroll];

    


设置一个页码显示的UIPageController显示当前滚动到第几个视图

    page=[[UIPageControl alloc]initWithFrame:CGRectMake(kWidth/2-100, kHeight*0.85, 200, 20)];

    page.pageIndicatorTintColor=[UIColor redColor];

    page.currentPageIndicatorTintColor=[UIColor greenColor];

    page.numberOfPages=11;

    [self.view addSubview:page]; 

}






    2>判断当前是否滚动到第一个或者最后一个,实现页面跳转,这是一幅即将由第一张向前滑动到最后一张的跳转,图片和page同时跳转




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

    CGPoint point=scrollView.contentOffset;

    if(point.x<=0){

        point.x=kWidth*11;

        scrollView.contentOffset=point;

    }

    if(point.x>=12*kWidth){

        point.x=kWidth;

        scrollView.contentOffset=point;

    }

    NSInteger pages=point.x/(kWidth+1);

    page.currentPage=pages;

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值