ios 無限迴圈翻頁源碼例子

來源:互聯網
上載者:User

demo功能:ios 無限迴圈翻頁源碼例子。iphone 6.1測試通過。

demo說明:MyScrollView.m中又主要的頁面控制碼。使用 UIScrollView和 UIPageControl控制項。通過在滾動結束時設定uiscrollview的內容起始座標來實現無限制迴圈。

 

demo截屏:

 

 


demo主要代碼: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]; }}  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.