zoukankan      html  css  js  c++  java
  • [置顶] ios 无限循环翻页源码例子

    原创文章,转载请注明出处:http://blog.csdn.net/donny_zhang/article/details/9923053

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


    demo下载地址:http://download.csdn.net/detail/donny_zhang/5914159

  • 相关阅读:
    Hive内部表外部表转化分析
    20130515
    mapred.local.dir
    经典
    hive中巧用正则表达式的贪婪匹配
    做生意十大忌
    股价是最没有用的东西,要看公司基本面和盈利
    textView文本不同颜色
    Android中扫描wifi热点
    android 与 PC的socket通信
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3253650.html
Copyright © 2011-2022 走看看