iOS开发之UIScrollView基本知识


#import "FJViewController.h"动画


@interface FJViewController ()<UIScrollViewDelegate>spa


@end .net


@implementation FJViewController3d



- (void)viewDidAppear:(BOOL)animated{代理

    

    [super viewDidAppear:animated];orm

    UIScrollView *scroll = (UIScrollView *)[self.view viewWithTag:101];对象

    

    //动画去更新偏移量图片

    

    [scroll setContentOffset:CGPointMake(1000, 700) animated:YES];ci

}get


- (void)viewDidLoad {

    [super viewDidLoad];

   

    //1.建立UIScrollView对象

    //建立UIScrollView的时候,系统会自动给UIScrollView

    //建立一个子视图,专门负责UIScrollView上内容(UIScrollView子视图)的显示;

    //子视图默认坐标(0,0),大小是UIScrollView的大小;

    UIScrollView *scrollView = [[UIScrollView alloc]

                                initWithFrame:self.view.bounds];

    //2.显示在界面上

    [self.view addSubview:scrollView];

    

    scrollView.tag = 101;

    

    

    //3.设置背景颜色

    scrollView.backgroundColor = [UIColor redColor];

    

    //4.scrollView上显示一张图片

    UIImage *image = [UIImage imageNamed:@"1092.jpg"];

    UIImageView *imageView = [[UIImageView alloc]

                              initWithFrame:CGRectMake(0, 0, image.size.width, image.size.height)];

    imageView.image = image;

    imageView.tag = 100;

    

    [scrollView addSubview:imageView];

    

    //============scrollView核心属性================================

    //5.scrollView滚动起来的前提

    //scrollView的内容视图的大小大于scrollViewframe的大小

    //内容视图的宽度大于scrollView的宽度,滚动视图能够左右滚动

    //内容视图的高度大于scrollView的高度,滚动视图能够上下滚动

    

    //scrollView滚动起来就是改变内容视图的大小

    scrollView.contentSize = CGSizeMake(image.size.width,image.size.height);

    

    //6.设置偏移量

    scrollView.contentOffset = CGPointMake(0, 600);

  //  [scrollView setContentOffset:CGPointMake(500, 500) animated:YES];


    

    //!!!设置代理

    scrollView.delegate = self;

    

    //==================其余属性====================

    //7.contentInset

    //设置content视图到scrollView上左下右的边距;

    //默认是(0,0,0,0)

    [scrollView setContentInset:UIEdgeInsetsMake(20, 20, 20, 20)];

    

    //8.pagingEnabled是否能够翻页

    //每次滚动都是滚动一页;(若是是左右滚动

    //就是滚动scrollView的宽度)

    //若是上下滚动就是滚动scrollView高度;

    scrollView.pagingEnabled = YES;

    

    //9.设置是否能够滚动

    [scrollView setScrollEnabled:YES];


    //10.设置是否显示滚动条

    scrollView.showsVerticalScrollIndicator = YES;

    scrollView.showsHorizontalScrollIndicator = NO;


    //11.设置滚动条的样式

    [scrollView setIndicatorStyle:UIScrollViewIndicatorStyleWhite];


    //===============缩放相关====================

    //想要对scrollView进行缩放,实质是对添加到

    //scrollView内容进行缩放

    //1.最小缩放比例(默认是1)

    scrollView.minimumZoomScale = 0.5;

    

    //2.最大缩放比例(默认是1)

    scrollView.maximumZoomScale = 2;

    

    

}



#pragma mark - UIScrollView 的代理


//MARK:缩放相关

//返回值就是须要缩放的对象

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

    

 

    return [scrollView viewWithTag:100];

    

    

    

}


//MARK:滚动相关

//scrollView滚动的时候实时调用这个方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

    

    //通常在这里获取scrollView的偏移量;

    CGPoint point = scrollView.contentOffset;

    NSLog(@":%@",NSStringFromCGPoint(point));

    if (point.y <= 0) {

        

        scrollView.contentOffset = CGPointMake(point.x

                                               , 0);

    }

    

}

//MARK:拖拽

//将要开始滚动的时候调用这个方法

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{

    

    NSLog(@"拖拽");

    

    

}

//MARK:将要中止拖拽的时候(将要松手的时候)

//参数1:委托

//参数2:中止拖拽的时候xy方向的加速度

//参数3:滚动中止的时候scrollView的偏移量;(中止滚动的时候的位置信息)

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView

withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)

  targetContentOffset{

    

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

    

    

    

}


//已经中止拖拽

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

    

    NSLog(@"中止拖拽");

    

    

}

//将要开始减速

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{

    

    

    NSLog(@"开始减速");

    

}



//至关于已经中止滚动的方法

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{


    NSLog(@"已经中止滚动~~~~~");

    

    

}


//已经中止滚动动画

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{

    

    //这个中止是经过[scrollView setContentOffset:animation]产生的动画;

    

   

    

    NSLog(@"中止动画");

    

    

}


//设置点击状态栏是否能够回到顶部,默认是yes

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView

{

    return YES;

    

}



@end

相关文章
相关标签/搜索