iOS 【UIKit-UIScrollView】

来源:互联网 发布:linux 印象笔记 编辑:程序博客网 时间:2024/05/16 02:58

首先,我们来通过一张图来直观的了解UIScrollView:

经典解释:就像两张重叠在一起的纸,上面的纸中间有个320*480的屏幕状的洞,然后下面的纸可以无限大,显示是内容,你可以将手指通过这个洞来移动下面的纸,来阅读上面的信息。(这句话帮助理解很重要)

contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960), 代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。

contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentoffset就是(0 ,480),也就是y偏移了480

contentInset是scrollview的contentview的顶点相对于scrollview的位置,例如你的contentInset = (0 ,100),那么你的contentview就是从scrollview的(0 ,100)开始显示

★★★个人理解:
还是要套用一下经典解释:

contentInset:
//                          上             左               下               右
//    UIEdgeInsetsMake(<#CGFloat top#>, <#CGFloat left#>, <#CGFloat bottom#>, <#CGFloat right#>)
    self.scrollView.contentInset = UIEdgeInsetsMake(64, 0, 49, 0);

contentInset——我们在上面的例子中设置了contentInset的 上 和 下 属性。一个是64,一个是49。(都是正数)显然就是下面“那张纸”的视图你看不到的部分。你往下无论怎么拉,上面的64尺寸的部分你都无法看到;无论怎么往上拉视图,下面的49尺寸的部分也是无法看到的。上面的纸抠出的洞是不能观察这一部分的。(补充一下,你使劲拉是能看到后面的,但是松手,视图就会弹回去。所以我在上面说:无法看到)

contentSize——是下面那张带有图画的纸 可以观察的尺寸(下面纸是无限大的,所以要说“可以观察的尺寸”)。也是透过上面那张纸抠出来的洞可以看到的部分!
    
self.scrollView.contentSize = CGSizeMake(0, h);
//    CGSizeMake(CGFloat width, CGFloat height)
上面contentSize的width设置为0,也就说明了视图左右是无法移动的。而上下可以移动的最大幅度就是到h尺寸

contentOffset——上面纸抠出来的洞(基准点) 和 contentSize 的相对位置,下面那张纸是坐标系,而抠的洞的左上角就是基准点(如果要设置一个Button来控制这个洞的移动,那么触发方法click时方法内部更改的值就可以是contentOffset的参数,这样就能控制“洞”的移动了。注意这里是“洞”的移动,而不是下面那张纸的移动,和经典解释并不同,因为这里我们改的是洞的坐标,也就是contentOffset)



5 0
原创粉丝点击