iOS UIScrollView 循环滚动(loop)

上周,公司让把潮流资讯界面改成网易新闻那种循环滚动的。能力有限,改了一周时间,改到最后,自己也不是很满意,交给无线产品去测试了,不知道能否满意,呵呵。到最后是真的开始佩服网易新闻的程序员,和他们的差距还是很大的。


现在趁着有时间,把想法和思路做个标记。


UIScrollView循环,我的思路是这样的。比如有3张图片a,b,c  ,想做成循环滚动的那么可以思路是(c,a,b,c,a)。五张图,但是只显示中间的(a,b,c)。当滑动到a的时候,c 也会显示出来,视觉上像是循环了,这个时候,要添加一个响应事件,改变scrollView的contenOffSet属性。让滚动视图滚动到(c,a,b,c,a)中b后面的C的位置。当滑到(c,a,b,c,a)中(b,c)后面那个a 的时候,也是这样的道理,当滑动到a,的时候,感觉是循环到了最前面的这张a图片,然后在这个时候,添加一个响应事件,改变scrollView的contentOffSet属性,让滚动视图滚动到(c,a,b,c,a)中第一个a的位置。这样就实现了UIScrollView的循环滚动。


1.在什么时候触发那个响应事件:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

这个方法只要滑动就能监听的到,在这个方法里面判断个人觉得最合适

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGPoint contetPoint = scrollView.contentOffset;
    float contetOffX = contetPoint.x;
    if(contetOffX == 0.0f)
    {
        scrollView.contentOffset= CGPointMake(self.view.frame.size.width *3,0);
    }
    else if (contetOffX == self.view.frame.size.width *4)
    {
        scrollView.contentOffset = CGPointMake(self.view.frame.size.width, 0);
    }
    if(contetOffX == 0.0f)
    {
        [self loadImage:0];
        [self loadImage:1];
    }
    else if(contetOffX == self.view.frame.size.width)
    {
        [self loadImage:1];
        [self loadImage:2];
    }
    else if(contetOffX == self.view.frame.size.width*2)
    {
        [self loadImage:2];
        [self loadImage:3];
    }
    else if(contetOffX == self.view.frame.size.width *3)
    {
        [self loadImage:3];
        [self loadImage:4];
       
    }
    else if(contetOffX == self.view.frame.size.width *4)
    {
        [self loadImage:4];
        [self loadImage:0];
    }
    
}

-(void)loadImage : (int) num
{
    NSString *image1= @"http://img0.bdstatic.com/img/image/shouye/dengni51.jpg";
    NSString *image2= @"http://img0.bdstatic.com/img/image/shouye/mxym-9409417791.jpg";
    NSString *image3= @"http://img0.bdstatic.com/img/image/shouye/mxly-9624794581.jpg";

    UIImageView *imageView = [_imagesArray objectAtIndex:num];
    if(num == 0)
    {
        [imageView setImageWithURL:[NSURL URLWithString:image3]];

    }
    else if (num == 1)
    {
        [imageView setImageWithURL:[NSURL URLWithString:image1]];

    }
    else if(num ==2)
    {
        [imageView setImageWithURL:[NSURL URLWithString:image2]];

    }
    else if(num ==3)
    {
        [imageView setImageWithURL:[NSURL URLWithString:image3]];

    }
    else if(num ==4)
    {
         [imageView setImageWithURL:[NSURL URLWithString:image1]];
    }
}





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值