Demo function: ios infinite loop paging source code example. Iphone 6.1 passed the test.
Demo Description: The main page control code in MyScrollView. m. Use the UIScrollView and UIPageControl controls. You can set the starting coordinate of uiscrollview content at the end of the rolling process to implement an unlimited loop.
Demo screenshot:
Demo main code: MyScrollView. m
- (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code //UIScrollView carScroll=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 1024, 748)]; [carScroll setContentSize:CGSizeMake(1024*(TOTLE_PAGE+1), 100)]; [carScroll setShowsHorizontalScrollIndicator:NO]; [carScroll setPagingEnabled:YES]; [carScroll setDelegate:self]; for(int i=0; i<TOTLE_PAGE+1; i++) { UIImageView *scrollImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i]]] ; scrollImg.frame = CGRectMake(1024*i, 0, 1024, 748); scrollImg.tag = 2220+i; scrollImg.userInteractionEnabled = YES; UITapGestureRecognizer *tapGestrue = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)]; [scrollImg addGestureRecognizer:tapGestrue]; [tapGestrue release], tapGestrue = nil; [carScroll addSubview:scrollImg]; [scrollImg release], scrollImg = nil; } [self addSubview:carScroll]; //carPageControl carPageControl=[[UIPageControl alloc] initWithFrame:CGRectMake(380, 700, 350, 26)]; [carPageControl setNumberOfPages:TOTLE_PAGE]; [carPageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged]; [self addSubview:carPageControl]; } return self; } #pragma mark - #pragma ScrollView Delegate -(void) scrollViewDidScroll:(UIScrollView *)scrollView { int offsetX = scrollView.contentOffset.x; if(offsetX < 0){ [scrollView setContentOffset:CGPointMake(1024*TOTLE_PAGE, 0)]; } if(offsetX > 1024*TOTLE_PAGE){ [scrollView setContentOffset:CGPointMake(0, 0)]; } } - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { int offsetX = scrollView.contentOffset.x; if(offsetX/1024 == TOTLE_PAGE){ [scrollView setContentOffset:CGPointMake(0, 0)]; carPageControl.currentPage = 0; } if(offsetX%1024 == 0){ [carPageControl setCurrentPage:scrollView.contentOffset.x/1024]; } } - (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { // Initialization code //UIScrollView carScroll=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 1024, 748)]; [carScroll setContentSize:CGSizeMake(1024*(TOTLE_PAGE+1), 100)]; [carScroll setShowsHorizontalScrollIndicator:NO]; [carScroll setPagingEnabled:YES]; [carScroll setDelegate:self]; for(int i=0; i<TOTLE_PAGE+1; i++) { UIImageView *scrollImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i]]] ; scrollImg.frame = CGRectMake(1024*i, 0, 1024, 748); scrollImg.tag = 2220+i; scrollImg.userInteractionEnabled = YES; UITapGestureRecognizer *tapGestrue = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)]; [scrollImg addGestureRecognizer:tapGestrue]; [tapGestrue release], tapGestrue = nil; [carScroll addSubview:scrollImg]; [scrollImg release], scrollImg = nil; } [self addSubview:carScroll]; //carPageControl carPageControl=[[UIPageControl alloc] initWithFrame:CGRectMake(380, 700, 350, 26)]; [carPageControl setNumberOfPages:TOTLE_PAGE]; [carPageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged]; [self addSubview:carPageControl]; } return self;}#pragma mark -#pragma ScrollView Delegate-(void) scrollViewDidScroll:(UIScrollView *)scrollView{ int offsetX = scrollView.contentOffset.x; if(offsetX < 0){ [scrollView setContentOffset:CGPointMake(1024*TOTLE_PAGE, 0)]; } if(offsetX > 1024*TOTLE_PAGE){ [scrollView setContentOffset:CGPointMake(0, 0)]; }}- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ int offsetX = scrollView.contentOffset.x; if(offsetX/1024 == TOTLE_PAGE){ [scrollView setContentOffset:CGPointMake(0, 0)]; carPageControl.currentPage = 0; } if(offsetX%1024 == 0){ [carPageControl setCurrentPage:scrollView.contentOffset.x/1024]; }}