美文网首页
UIScrollView的contentSize、content

UIScrollView的contentSize、content

作者: fb69e982796d | 来源:发表于2021-03-23 16:38 被阅读0次

在iOS中,UIScrollView(继承UIKit.framework重的UIView)是UIKit.framework中的一个可以滚动的视图,最常见的UITableView、UICollectionView就是继承了UIScrollView。跟所有的view一样,UIScrollView有一个属性frame,同时其还具有另外三个属性:
@property(nonatomic) CGPoint contentOffset; // default CGPointZero
@property(nonatomic) CGSize contentSize; // default CGSizeZero
@property(nonatomic) UIEdgeInsets contentInset; // default UIEdgeInsetsZero. add additional scroll area around content

contentSize,即UIScrollView的可以滚动的区域。手机的屏幕是固定的,但是如果要滚动查看比手机屏幕更大的图片,那么就需要设置contentSize属性,将其设定为图片的大小。可以将UIScrollView看成具有上下两层的复合视图,frame控制着上层的大小,就是我们所看到的区域,上层固定不动,显示的变化,是由下层的滚动来控制。而滚动区域的大小则有contentSize来控制。例如:若frame=(0,0,320,480),contentSize=(320,960),代表UIScrollView可以上下滚动,滚动区域为frame大小的两倍。
contentOffset,即UIScrollView当前显示区域的顶点相对于frame顶点的偏移量,例如上面的例子,如果拉到最下面,则contentOffset就是(0,480),也就是y便宜了480。换句话说手机屏幕大小为(300,600),scrollView的frame为(0,0,300,600),contentSize为(0,0,300,1200),这时候能看到的区域大小为两个手机屏幕的大小,contentOffset为(0,0),则看到的上半部分内容,若为(0,600),可以看到后半部分的内容。
contentInset,即内容视图嵌入到封闭的滚动视图的距离,可以理解为内容视图的上下左右四个边扩展出去的大小。

image.png image1.png image2.png

总结如下:
contentInset,增加内容视图的四周的边距
contentOffset,通过指定偏移点(相当于内容区域的左上角起点)来显示内容的指定区域
contentSize,指定scrollView的内容大小

相关文章

网友评论

      本文标题:UIScrollView的contentSize、content

      本文链接:https://www.haomeiwen.com/subject/jrbfhltx.html