循环滚动scrollView---最后一张图片后面紧跟着第一张图片,第一张图片前面挨着最后一张图片

问题描述:循环滚动scrollView---最后一张图片后面紧跟着第一张图片,第一张图片前面挨着最后一张图片,形成环,循环切换图片。

效果图如下:

具体代码如下:


//  ViewController.m



#import "ViewController.h"


#define kW 375

#define kH 500

#define kCount 11


@interface ViewController () <UIScrollViewDelegate>


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    

    //加载滚动视图

    [self _loadScroll];

}



- (void) _loadScroll

{

    

    UIScrollView * scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, kW, kH)];

    

    scrollView.delegate=self;

    

    for (int i=0; i<kCount+2; i++)

    {

        UIImageView * imageView=[[UIImageView alloc]initWithFrame:CGRectMake(i*kW, 0,kW ,kH )];

        

        //图片序号

        int imageIndex=i;

        

        //如果是第一张和最后一张需要特殊处理

        if (i==0)

        {

            imageIndex=kCount;

        }

        else if(i==kCount+1)

        {

            imageIndex=1;

        }

        

        //添加图片

        NSString * imgName=[NSString stringWithFormat:@"t%i.jpg",imageIndex];

        imageView.image=[UIImage imageNamed:imgName];

        

        [scrollView addSubview:imageView];

    }

    

    scrollView.contentSize=CGSizeMake((kCount+2)*kW, kH);   //滚动视图的总宽度

    scrollView.showsHorizontalScrollIndicator=NO//最下方的自带的进度条  NO--隐藏   YES---显示

    scrollView.pagingEnabled=YES;    //一下滑动一整个屏幕的宽度

  

    [self.view addSubview:scrollView];

}



#pragma mark - UIScrollView代理方法实现

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

    if (scrollView.contentOffset.x/kW==kCount+1)

    {

        NSLog(@"=====");     //测试代码

        

        scrollView.contentOffset=CGPointMake(kW, 0);

    }

    else if(scrollView.contentOffset.x==0)

    {

        scrollView.contentOffset=CGPointMake(kW*kCount,0);

    }

    

//    if (scrollView.contentOffset.x>(kCount+1)*kW)

//    {

//        scrollView.contentOffset=CGPointMake(kW, 0);

//    }

//    else if (scrollView.contentOffset.x/kW==0)

//    {

//        scrollView.contentOffset=CGPointMake(kW*kCount, 0);

//    }

    

}

@end

缺点:没有实现重复利用,耗费太多内存,优化的程序,等改好后继续上传,敬请期待。。。。。
PS:
   有感而发:最近感觉越来越找不到方向了,但是还在继续坚持,希望能够走到最后,加油吧,小伙伴们!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值