zoukankan      html  css  js  c++  java
  • UIScrollView 与 UIPageView 的联合使用

     
     
     @interface ViewController : UIViewController<UIScrollViewDelegate>

    {

        UIScrollView * scrollView;

        

        UIPageControl * pageControl;

        

    //    BOOL pageControlIsChangingPage;

        

        NSMutableArray * images;

        

    }

     

    //- (void)changePage:(id)sender;

     

    - (void)setupPage;

     

     

    @end

     
     
     
     

    @implementation ViewController

     

    - (void)viewDidLoad

    {

        [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

        

     

        

        self.view.backgroundColor = [UIColor blackColor];

        

        scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];

        

        pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 410, 320, 36)];

        

        

        images = [NSMutableArray arrayWithObjects:@"h1.jpeg",@"h2.jpeg",@"h3.jpeg",@"h4.jpeg",@"h5.jpeg",@"h6.jpeg",@"h7.jpeg",@"h8.jpeg", nil];

        

        [self.view addSubview:scrollView];

        

        [self.view addSubview:pageControl];

        

           

        [self setupPage];

        

    }

     

     

     

    ////多余的方法

    //- (void)changePage:(id)sender

    //{

    //    

    //    NSLog(@"%s",__func__);

    //    CGRect frame = scrollView.frame;

    //    

    //    frame.origin.x = frame.size.width * pageControl.currentPage;

    //    frame.origin.y = 0;

    //    

    //    [scrollView scrollRectToVisible:frame animated:YES];

    //    

    //    pageControlIsChangingPage = YES;

    //    

    //}

     

    - (void)setupPage

    {

        

         NSLog(@"%s",__func__);

        scrollView.delegate = self;

        

        [scrollView setBackgroundColor: [UIColor blackColor]];

        

        //

        [scrollView setCanCancelContentTouches:NO];

        

        scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite ;

        

    //    //

    //    scrollView.clipsToBounds  = YES;

    //    

    //    scrollView.scrollEnabled = YES;

        

        scrollView.pagingEnabled = YES;

        

    //    //

    //    scrollView.directionalLockEnabled = YES;

    //    

        //隐藏滚动条

        

        scrollView.alwaysBounceVertical = NO;

        

        scrollView.alwaysBounceHorizontal = NO;

        

        scrollView.showsHorizontalScrollIndicator = NO;

        

        scrollView.showsVerticalScrollIndicator = NO;

        

        

        NSInteger nimages = 0;

        

        CGFloat cx = 0 ;//定义下一幅图片的的坐标

        

        

        //循环导入图片

        

        for(NSString * imagePath in images)

        {

            

            

    //        UIImageView * imageView = [[[UIImageView alloc] initWithFrame:CGRectZero]autorelease];

    //        

    //        [imageView setBackgroundColor: [UIColor colorWithRed:.6 green:.6 blue:.6 alpha:1.0]];

    //        

    //        UIImage * image = [UIImage imageNamed:imagePath];

    //        

    //        [imageView setImage:image];

            

            

            UIImageView * imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imagePath]];

            

            

            

            CGRect rect = scrollView.frame;

                    

            rect.size.height = scrollView.frame.size.height;

            

            rect.size.width = scrollView.frame.size.width;

            

            rect.origin.x = cx;

            

            rect.origin.y = 0;

            

            imageView.frame = rect;

            

                    

            imageView.contentMode = UIViewContentModeScaleAspectFill;

            

            [scrollView addSubview:imageView];

            

            cx += scrollView.frame.size.width;

            

            nimages ++;

        }

        

    //    //不必要的事件

    //    [pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];

        

        pageControl.currentPage = 0;

        pageControl.numberOfPages = nimages;

        

        pageControl.tag = 0;

        

        [scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];

        

        

        

    }

     

     

     

    //scrollViewkai

    - (void)scrollViewDidScroll:(UIScrollView *)_scrollView

    {

        

         NSLog(@"%s",__func__);

    //    if(pageControlIsChangingPage)

    //    {

    //        return;

    //    }

        

        //画面拖动超过百分之五十进行切换

        

        //返回page的值

        CGFloat pageWidth = _scrollView.frame.size.width;

        

        //函数名: floor  功 能: 返回小于或者等于指定表达式的最大整数

        //函数名: ceil  功 能: 返回大于或者等于指定表达式的最小整数

        int page = floor((_scrollView.contentOffset.x - pageWidth/2)/pageWidth)+1;

        

        pageControl.currentPage = page;

    }

     

    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

    {

         NSLog(@"%s",__func__);

    //    pageControlIsChangingPage = NO;

        

    }

     

    - (void)dealloc

    {

        [images release];

        [scrollView release];

        

        [pageControl release];

        [super dealloc];

    }

  • 相关阅读:
    如何在Mac终端中进入含空格文件名的文件夹
    redis测试常用工具及方法
    Spark3.0 Standalone模式部署
    使用Quorum Journal Manager(QJM)的HDFS NameNode高可用配置
    任务-实业-化工:王永庆
    节日-传统节日:排灯节
    葡萄科:乌蔹梅
    植物界:蕨类植物门
    修辞手法-汉语-词语:明喻
    修辞手法-汉语-词语:隐喻
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/5049837.html
Copyright © 2011-2022 走看看