您的位置:首页 > 产品设计 > UI/UE

iOS UIScrollView 循环滚动(loop)

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

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

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]];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: