iosUIScrollView以及UIPageControl的基本使用以及所有代理方法

//创建ScrollView的方法

-(void)createScrollView

{

    UIScrollView *sv = [[UIScrollView alloc]initWithFrame:CGRectMake(5, 5, self.view.frame.size.width - 10, self.view.frame.size.height-10)];

    //w代表sv.frame的宽度

    CGFloat w = self.view.frame.size.width - 10;

    //滑动的size的设置

    //宽度 如果要横着滑动设置大于sv.frame的宽度

    sv.contentSize = CGSizeMake(3*w, sv.frame.size.height-10);

    //获得三个图放到UIImageView

    for (int i =0; i<3; i++)

    {

        //获得三张图

        UIImage*image =[UIImage imageNamed:[NSString stringWithFormat:@"43_%d.jpg",i+1]];

        //三张图放到imageView上去

        UIImageView *iv = [[UIImageView alloc]initWithImage:image];

        //设定imageView的位置

        iv.frame = CGRectMake(i*w, 0, w, self.view.frame.size.height-10);

       

//        iv.userInteractionEnabled = YES;

        //iv放到父视图 ScrollView上面去

        [sv addSubview:iv];

    }

    //水平滑动指示条

    sv.showsHorizontalScrollIndicator = NO;

    //垂直滑动指示条

    sv.showsVerticalScrollIndicator = NO;

    //设置按页滑动 page

  //  sv.pagingEnabled = YES;

    //弹性设置

    sv.bounces = NO;

    

    sv.userInteractionEnabled = YES;

    //自带放大 缩小 option 

    //默认不自己放大缩小

    //设置放大最大的倍数

    sv.maximumZoomScale = 2;

    //设置最小缩小到多大

    sv.minimumZoomScale = 0.5;

    

    //设置代理

    sv.delegate = self;

    

    //要不要返回顶部

    sv.scrollsToTop = YES;

    //添加背景色

    sv.backgroundColor = [UIColor redColor];

    

    //添加到主界面

    [self.view addSubview:sv];

    

    //

    UIPageControl *pageC = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 0, 200, 40)];

    pageC.center=CGPointMake(150,300);

    pageC.numberOfPages = 10;

    pageC.currentPage =2;

    pageC.tag = 200;

    pageC.currentPageIndicatorTintColor = [UIColor greenColor];

    [pageC addTarget:self action:@selector(pageC:) forControlEvents:UIControlEventValueChanged];

    pageC.pageIndicatorTintColor = [UIColor blackColor];

    pageC.backgroundColor = [UIColor redColor];

    [self.view addSubview:pageC];

}

#pragma mark -delegate

//控制放缩 代理方法

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

{

    //使得所有的界面都可以进行放缩

    return scrollView.subviews[0];

}

//已经滑动

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

    NSLog(@"开始滑动之后 执行的方法");

    NSInteger index = scrollView.contentOffset.x /scrollView.frame.size.width;

    UIPageControl *pc =(UIPageControl*) [self.view viewWithTag:200];

    pc.currentPage =index;

    

}

//已经放缩

- (void)scrollViewDidZoom:(UIScrollView *)scrollView

{

    NSLog(@"放缩之后 执行的方法");

}

//开始拖动的方法

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

{

    NSLog(@"即将滑动的状态 指头轻轻一划");

}

// called on finger up if the user dragged. velocity is in points/millisecond. targetContentOffset may be changed to adjust where the scroll view comes to rest

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset

{

    //scrollview就是当前的scrollview

    //velocity加速度

    //offset 移动

    NSLog(@"即将结束滑动,手指移开 惯性还在滑的时候");

}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

{

    NSLog(@"已经结束滑动");

}

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView

{

    NSLog(@"减速");

}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

    NSLog(@"减速完成 和滑动结束 状态基本一致");

}

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView

{

    NSLog(@"结束滑动的动画");

}

//- (nullable UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;     // return a view that will be scaled. if delegate returns nil, nothing happens

- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view

{

    //

    bigSmallV = view;

    NSLog(@"即将开始缩放");

}

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale

{

    NSLog(@"已经结束缩放");

}

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView

{

    NSLog(@"返回是否可以滑动到顶部");

    //返回YES表示可以滑动到顶部 返回No表示不可以滑动到顶部

    return YES;

}

- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView

{

    NSLog(@"已经返回到顶部");

}

#pragma mark - delegate

-(void)pageC:(UIPageControl *)pc

{

   

}

原文地址:https://www.cnblogs.com/sunfuyou/p/5919015.html