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

来源:互联网 发布:Java快捷键不好使 编辑:程序博客网 时间:2024/05/01 04:16


#define IMAGECOUNT 6


/**

 *  设置scrollView

 */

-(void)setupScrollView

{

    CGRect rect = [UIScreenmainScreen].bounds;

    

    self.size = rect.size;

    

    self.scrollView = [[UIScrollViewalloc]initWithFrame:rect];

    

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

    

    [self.scrollViewsetShowsHorizontalScrollIndicator:NO];

    

    [self.scrollViewsetPagingEnabled:YES];

    

    [self.scrollViewsetDelegate:self];

    

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

    

    [self.viewaddSubview: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 = [[UIImageViewalloc]initWithImage:image];

        

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

        

        [self.scrollViewaddSubview: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)];

    }

}

0 0