gpt4 book ai didi

objective-c - 何时使用 Bound 何时使用 Frame

转载 作者:太空狗 更新时间:2023-10-30 03:58:18 25 4
gpt4 key购买 nike

我发现了

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

UIView 的框架是一个矩形,表示为相对于它包含在其中的父 View 的位置 (x,y) 和大小 (width,height)。

但我怀疑我将在哪种情况下使用边界。我们不能在

中使用框架吗?

所有情况?是否需要使用 bound ?

最佳答案

来自View Programming Guide :

  • frame 属性包含框架矩形,它指定 View 在其父 View 坐标系中的大小和位置。
  • bounds 属性包含边界矩形,它在 View 自己的局部坐标系中指定 View 的大小(及其内容原点)。

框架:

You use the center and frame properties primarily for manipulating the geometry of the current view. For example, you use these properties when building your view hierarchy or changing the position or size of a view at runtime. If you are changing only the position of the view (and not its size), the center property is the preferred way to do so. The value in the center property is always valid, even if scaling or rotation factors have been added to the view’s transform. The same is not true for the value in the frame property, which is considered invalid if the view’s transform is not equal to the identity transform.

边界:

You use the bounds property primarily during drawing. The bounds rectangle is expressed in the view’s own local coordinate system. The default origin of this rectangle is (0, 0) and its size matches the size of the frame rectangle. Anything you draw inside this rectangle is part of the view’s visible content. If you change the origin of the bounds rectangle, anything you draw inside the new rectangle becomes part of the view’s visible content.

所以你用frame做了以下事情:

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

应该使用边界的情况:

  • 当您在带有边界的 View 内绘图时,例如在 UIViewdrawRect: 方法中。
  • 将 subview 添加到父 View 边界

关于objective-c - 何时使用 Bound 何时使用 Frame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com