frame是参考父view的坐标系来设置自己左上角的位置。设置bounds可以修改自己坐标系的原点位置,进而影响到其“子view”的显示位置。
向上滚动scrollview,我们就不断增加scrollview的bounds的y值,也就是不断把scrollview的本地坐标系原点向下偏移(相对于scrollview的父view的坐标系,y值越大,越向下偏移)。那么此时scrollview的子控件的frame设置的(0,0)就是不断向上偏移
改变bounds的大小,则会改变frame的大小和位置
- 新的frame的size等于bound的size。
- 新的frame.x = 旧frame.x - (bounds.size.witdh - 旧frame.size.width)/2
- 新的frame.y = 旧frame.y - (bounds.size.height - 旧frame.size.height)/2