何时使用Bound和何时使用Frame

Raj*_*Raj 4 cocoa-touch objective-c frame bounds

我发现了那个

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

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

但我怀疑的是在哪种情况下我将有必要使用.我们不能使用框架

所有的情况?是否需要使用绑定?

Pfi*_*itz 11

View编程指南:

  • 所述框架属性包含框架矩形,它指定了鉴于它的父的坐标系的尺寸和位置.
  • 边界属性包含边界矩形,指定视图的视图自己的局部坐标系中尺寸(及其内容来源).

帧:

您主要使用center和frame属性来操作当前视图的几何.例如,在构建视图层次结构或在运行时更改视图的位置或大小时,可以使用这些属性.如果仅更改视图的位置(而不是其大小),则中心属性是首选方法.即使已将缩放或旋转因子添加到视图的变换中,center属性中的值也始终有效.对于frame属性中的值也是如此,如果视图的变换不等于identity变换,则该属性被视为无效.

边界:

您主要在绘图期间使用bounds属性.边界矩形在视图自身的局部坐标系中表示.此矩形的默认原点是(0,0),其大小与框架矩形的大小相匹配.您在此矩形内绘制的任何内容都是视图可见内容的一部分.如果更改边界矩形的原点,则在新矩形内绘制的任何内容都将成为视图可见内容的一部分.

所以你用框架做了以下事情:

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

你应该使用边界的情况:

  • 当您使用边界绘制视图内部时,例如在drawRect:方法中UIView.
  • 将子视图添加到父视图边界