在iOS开发中,frame和bounds是两个常用的属性,用于描述视图的位置和大小。它们之间的区别如下:
frame是指视图在其父视图坐标系统中的位置和大小。它的坐标是相对于父视图的左上角原点的。frame属性包含了视图的origin(x和y坐标)和size(宽度和高度)。bounds是指视图在其自身坐标系统中的位置和大小。它的坐标是相对于视图自身的左上角原点的。bounds属性只包含了视图的origin为(0, 0)和size(宽度和高度)。
总结来说,frame描述了视图在父视图坐标系统中的位置和大小,而bounds描述了视图在自身坐标系统中的位置和大小。因此,当视图发生旋转或缩放时,frame会随之改变,而bounds保持不变。
需要注意的是,frame和bounds属性都是CGRect类型的结构体。CGRect结构体包含origin和size属性,分别表示视图的起点和大小。