美文网首页
frame 和 bounds 的区别

frame 和 bounds 的区别

作者: 小凡凡520 | 来源:发表于2018-11-26 16:11 被阅读0次
    frame

    frame是每个view必备的属性,代表的是当前视图的位置和大小,没有设置他,当前视图是看不到的。

    1196725-cbc4bad2cf92c210.png.jpeg
    1.在iOS坐标系中以左上角为坐标原点,往右为X正方向,往下是Y正方向
    2.frame中的位置是以父视图的坐标系为标准来确定当前视图的位置
    3.同样的默认情况下,本视图的左上角就是子视图的坐标原点
    4.更改frame中位置,则当前视图的位置会发生改变
    5.更改frame的大小,则当前视图以当前视图的左上角为基准的进行大
    
    bounds

    bounds是每个View都有的属性,这个属性我们一般不进行设置,他同样代表位置和大小

    每个视图都有自己的坐标系,且这个坐标系默认以自身的左上角为坐标原点,所有子视图以这个坐标系的原点为基准点

    bounds的位置代表的是子视图看待当前视图左上角的位置;bounds的大小代表当前视图的大小

    1.更改bounds中的位置对于当前视图没有影响,相当于更改了当前视图的坐标系,对于子视图来说当前视图的左上角已经不再是(0,0), 而是改变后的坐标,坐标系改了,那么所有子视图的位置也会跟着改变
    2.更改bounds的大小,bounds的大小代表当前视图的长和宽,修改长宽后,中心点继续保持不变, 长宽进行改变;通过bounds修改长宽看起来就像是以中心点为基准点对长宽两边同时进行缩放
    
    总结
    1.frame不管对于位置还是大小,改变的都是自己本身
    2.frame的位置是以父视图的坐标系为参照,从而确定当前视图在父视图中的位置
    3.frame的大小改变时,当前视图的左上角位置不会发生改变,只是大小发生改变
    4.bounds改变位置时,改变的是子视图的位置,自身没有影响;其实就是改变了本身的坐标系原点,默认本身坐标系的原点是左上角
    5.bounds的大小改变时,当前视图的中心点不会发生改变,当前视图的大小发生改变,看起来效果就想缩放一样

    相关文章

      网友评论

          本文标题:frame 和 bounds 的区别

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