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

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 先是执行 停止拖住的代理 然后在执行减速停止的代理


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值