何时使用Bound和何时使用Frame

时间:2012-10-25 13:17:20

标签: objective-c cocoa-touch frame bounds

我发现了

UIView的边界是矩形,表示为相对于其自身坐标系(0,0)的位置(x,y)和大小(宽度,高度)。

UIView的框架是矩形,表示为相对于其所包含的超级视图的位置(x,y)和大小(宽度,高度)。

但我怀疑的是在哪种情况下我会有使用的界限。我们不能在

中使用框架

所有案件?是否需要使用绑定?

1 个答案:

答案 0 :(得分:10)

来自View Programming Guide

  • frame 属性包含框架矩形,用于指定视图在其超视图坐标系中的大小和位置。
  • bounds 属性包含bounds矩形,该矩形指定视图自身本地坐标系中视图的大小(及其内容原点)。

框:

  

您主要使用中心和框架属性来操纵   当前视图的几何体。例如,您使用这些属性   在构建视图层次结构或更改位置或大小时   运行时的视图。如果您只更改视图的位置   (而不是它的大小),中心属性是这样做的首选方式。   中心属性中的值始终有效,即使缩放或   旋转因子已添加到视图的变换中。同样如此   对于frame属性中的值,这是不正确的   如果视图的变换不等于标识,则无效   变换。

边界:

  

您主要在绘图期间使用bounds属性。界限   矩形在视图自身的局部坐标系中表示。该   此矩形的默认原点是(0,0),其大小与   框架矩形的大小。你在这个矩形内绘制的任何东西   是视图可见内容的一部分。如果你改变了原点   边界矩形,你在新矩形内绘制的任何东西都会变成   视图的一部分可见内容。

所以你使用框架执行以下操作:

  • 调整大小视图
  • 移动/重新定位视图

何时应使用界限

  • 当您在视图中绘制边界时,例如在drawRect:的{​​{1}}方法中。
  • 将子视图添加到父视图边界