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

ios UIScrollView 循环滑动

2015-04-30 17:08 387 查看
1.普通分页滑动

myScrollView = [[UIScrollViewalloc]initWithFrame:CGRectMake(0,0,320,460)];

[myScrollViewsetContentSize:CGSizeMake(pageWidth*3,460)];

[myScrollViewsetBackgroundColor:[UIColorscrollViewTexturedBackgroundColor]];

[myScrollViewsetPagingEnabled:YES];//当此属性设置为YES时,才能自动分页

[self.viewaddSubview:myScrollView];

2.循环滑动

实现UIScrollViewDelegate代理: [myScrollViewsetDelegate:self];
初始化时,myScrollView 置于中间: [myScrollView setContentOffset:CGPointMake(pageWidth, 0)]

滑动结束之后,回到中间: [myScrollViewsetContentOffset:CGPointMake(pageWidth,0)];
代理方法:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.x <=0) {
[scrollView setContentOffset:CGPointMake(pageWidth,0)];
}
if (scrollView.contentOffset.x >=2*pageWidth) {
[scrollView setContentOffset:CGPointMake(pageWidth,0)];
}

}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
[scrollView setContentOffset:CGPointMake(pageWidth,0)animated:YES];
}

3.加上图片查看效果

这两句的位置不能交换

[selfloadScrollViewSubViews];

[myScrollViewsetContentOffset:CGPointMake(pageWidth,0)];

- (void)loadScrollViewSubViews

{

imageView1 = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"1.jpg"]];

imageView2 = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"2.jpg"]];

imageView3 = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"3.jpg"]];

[imageView1 setFrame:CGRectMake( 0,0, pageWidth,460)];

[imageView2 setFrame:CGRectMake( pageWidth,0,pageWidth,460)];

[imageView3 setFrame:CGRectMake(2*pageWidth,0,pageWidth,460)];

[myScrollView addSubview:imageView1];

[myScrollView addSubview:imageView2];

[myScrollView addSubview:imageView3];

}
4.循环效果并未出现,还要加上交换图片的代码

- (void)previousImageViewWithImage

{

UIImage * temp = [imageView1.imageretain];

imageView1.image =imageView2.image;

imageView2.image =imageView3.image;

imageView3.image = temp;

[temp release];

}

- (void)nextImageViewWithImage

{

UIImage * temp = [imageView3.imageretain];

imageView3.image =imageView2.image;

imageView2.image =imageView1.image;

imageView1.image = temp;

[temp release];

}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

if (scrollView.contentOffset.x <=0) {

currentImageCount--;

[selfpreviousImageViewWithImage];

[scrollView setContentOffset:CGPointMake(pageWidth,0)];

}

if (scrollView.contentOffset.x >=2*pageWidth) {

currentImageCount++;

[selfnextImageViewWithImage];

[scrollView setContentOffset:CGPointMake(pageWidth,0)];

}

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