ios UIScrollView 循环滑动

本文介绍如何在iOS应用中使用UIScrollView实现普通分页滑动、循环滑动,并通过添加图片实现查看效果,包括循环效果及图片交换代码。

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(pageWidth0)]
  • 滑动结束之后,回到中间:  [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,0pageWidth,460)];

        [imageView2 setFrame:CGRectMakepageWidth,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)];

        }

        

    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值