UIScrollView循环滚动(前后各加一张图片)


#define IMAGECOUNT 6


/**

 *  设置scrollView

 */

-(void)setupScrollView

{

    CGRect rect = [UIScreen mainScreen].bounds;

    

    self.size = rect.size;

    

    self.scrollView = [[UIScrollView alloc]initWithFrame:rect];

    

    [self.scrollView setContentSize:CGSizeMake(self.size.width * IMAGECOUNT, self.size.height)];

    

    [self.scrollView setShowsHorizontalScrollIndicator:NO];

    

    [self.scrollView setPagingEnabled:YES];

    

    [self.scrollView setDelegate:self];

    

    [self.scrollView setContentOffset:CGPointMake(self.size.width, 0)];

    

    [self.view addSubview:self.scrollView];

    

    [self setupPic];

}


/**

 *  设置图片

 */

-(void)setupPic

{

    CGFloat x = 0;

    CGFloat y = 0;

    CGFloat w = self.size.width;

    CGFloat h = self.size.height;

    

    for (NSInteger i = 0; i < IMAGECOUNT; i++) {

        UIImage *image = nil;

        

        if (i == 0) {

            //在第一张图片之前放最后一张图片

            image = [UIImage imageNamed:@"new_feature_4"];

        }

        else if (i + 1 == IMAGECOUNT) {

            //在最后一张图片之后放第一张图片

            image = [UIImage imageNamed:@"new_feature_1"];

        }

        else{

            image = [UIImage imageNamed:[NSString stringWithFormat:@"new_feature_%ld",i]];

        }

        

        x = i * w;

        

        UIImageView *imageView = [[UIImageView alloc]initWithImage:image];

        

        [imageView setFrame:CGRectMake(x, y, w, h)];

        

        [self.scrollView addSubview:imageView];

    }

}



-(void)scrollViewDidScroll:(UIScrollView *)scrollView

{

    CGFloat x = scrollView.contentOffset.x;

    

    //当滑动到最后一张时,也就是第一张,设置scrollViewx偏移

    if ((x + self.size.width) >= scrollView.contentSize.width) {

        [scrollView setContentOffset:CGPointMake(self.size.width, 0)];

    }

    

    //当滑动到第一张时,就是最后一张,设置scrollViewx偏移

    if (x == 0) {

        [scrollView setContentOffset:CGPointMake(self.size.width * 4, 0)];

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值