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)];

    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章