码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-05-29 23:16:32      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:uiscrollview   循环滚动   内存问题   

问题描述:循环滚动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:
   有感而发:最近感觉越来越找不到方向了,但是还在继续坚持,希望能够走到最后,加油吧,小伙伴们!




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

标签:uiscrollview   循环滚动   内存问题   

原文地址:http://blog.csdn.net/qq_27364431/article/details/46240113

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!