UI_UIScrollView(滚动视图)的图文理解

来源:互联网 发布:java random.nextint 编辑:程序博客网 时间:2024/06/05 09:46

1.有图有真相,加油!好好理解

为了便于理解UIScrollView(滚动视图)(下文用scr)的原理,先来三张图片,以便在大脑里有一个摸你的模型,

  1. 图中手机的屏幕框内的就是我们设置的scr的frame,scr怎么滚动能看到的只是fram大小的 空间
  2. 屏幕背后图片的大小 ,是contentSize设置的大小,图片有多大contentSize要是指多大

1

2

3

2..scr一些常用的属相,以及代理方法 (注释的好清楚咯)

 UIScrollView *scr =[[UIScrollView alloc]init];    //1、滚动视图要有一个滚动的范围,滚动的范围就是内容视图的大小,我们用contentSize来表示//一般来说,滚动视图的内容视图大小都要大于他的frame,不然没法滚    scr.contentSize = CGSizeMake(530, 596);//3、把想要滚得东西贴在滚动视图上,就会随着滚动视图一起滚了,所以换一句话说,滚动视图的内容大小应该至少保证大于等于想滚的东西的大小    //4、scrollview的属性//    1、边界弹不弹    scr.bounces = YES;//    2、scrollview的代理    scr.delegate = self;//    3、分页属性 ,  按照scrollView的frame来分页,每一页都是一个frame的大小,最后不够的部分算一页,尽量让contentSize 为fram的整数倍    scr.pagingEnabled = NO;//    4、显示或隐藏滑块    //水平进度条    scr.showsVerticalScrollIndicator = NO;    //垂直进度条    scr.showsHorizontalScrollIndicator = NO;    //    5、是否允许手动滚动    scr.scrollEnabled = YES;//    6、偏移量,就是内容视图相对于frame视图的左上角坐标的x和y的偏移的值    scr.contentOffset = CGPointMake(0, 0);//    7.设置偏移量,(滑动视图)//    - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated;//    8.放大和缩小的倍数,//    @property(nonatomic) CGFloat minimumZoomScale;//    @property(nonatomic) CGFloat maximumZoomScale;                #pragma mark- 滚动视图的代理方法    //滑动过程中,会一直在执行//    - (void)scrollViewDidScroll:(UIScrollView *)scrollView;//开始拖动//    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;    //停止拖动//    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;//开始滑动减速//    - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;//停止滑动 减速停止//    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;//允许缩放的视图(一个scrollview中只能有一个可以缩放且必须设置可以缩放的范围)//    - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;      

我在理解代理的执行过程中遇到过得问题:

// 第一个DidEndDragging 停止拖拽的时候开始执行 ,也就是手指离开的时

// 第二个:DidEndDecelerating 减速停止的时候开始执行,也就是视图停止是

// 它俩执行的时间不一样 scrollview 先是执行 停止拖住的代理 然后在执行减速停止的代理


0 0