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

来源:互联网 发布:c语言猜数字游戏 编辑:程序博客网 时间:2024/04/28 22:10

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

效果图如下:

具体代码如下:


//  ViewController.m



#import "ViewController.h"


#define kW 375

#define kH 500

#define kCount 11


@interface ViewController () <UIScrollViewDelegate>


@end


@implementation ViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    

    //加载滚动视图

    [self_loadScroll];

}



- (void) _loadScroll

{

    

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

    

    scrollView.delegate=self;

    

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

    {

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

        

       //图片序号

       int imageIndex=i;

        

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

       if (i==0)

        {

            imageIndex=kCount;

        }

       else if(i==kCount+1)

        {

            imageIndex=1;

        }

        

       //添加图片

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

        imageView.image=[UIImageimageNamed:imgName];

        

        [scrollViewaddSubview:imageView];

    }

    

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

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

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

  

    [self.viewaddSubview: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:
   有感而发:最近感觉越来越找不到方向了,但是还在继续坚持,希望能够走到最后,加油吧,小伙伴们!




0 0
原创粉丝点击