在UI中,会有很多视图具有可滚动属性,包括但不限于UICollectionView、UITableView等
它们的滚动原理基本相同,下面进行一个初学者的简单理解
它的滚动的实现依赖于两个属性:View的frame和bounds
- frame:视图的位置
- bounds:视图的大小
滚动效果可以简单理解为:当子view超出其bounds的时候,超出的部分在显示时将被“丢弃”,而通过拖动view或滚动轴,可以改变其frame,使其在界面上的相对位置发生变化(也就是它在bounds中的位置变化),从而使view显示的内容发生变更。
如图:view的可显示范围为粉色部分,view的资源内容为蓝色部分。
当view的frame为下图所示时,可显示的内容为蓝色 叠加在粉色之上的部分。
从图一到图二的过程,在界面上的显示效果为:控件向左移动了
(画图好麻烦,简单示意一下,具体的请参考下面的文档链接)
参考文档(内有图文):https://www.objc.io/issues/3-views/scroll-view/