gpt4 book ai didi

UIView的frame、bounds、center、origin,什么时候用什么?

转载 作者:行者123 更新时间:2023-12-02 02:41:01 27 4
gpt4 key购买 nike

UIView 具有属性 frameboundscenterorigin ,而且它们似乎都是相互关联的。大多数时候,我在设置UIView的位置和大小时处理frame。我知道 frame 使用全局坐标系,而 bounds 使用本地 View 的坐标(因此它的 x 和 y 为 0,但并不总是),但它仍然令人困惑对我来说何时使用什么。

在什么上下文(以及什么是正确的时间)下应该使用其他属性(boundscenterorigin)?

最佳答案

上面Marco的回答是正确的,但只是为了扩展“在什么背景下”的问题......

frame - 这是普通 iPhone 应用程序最常使用的属性。大多数控件将相对于“包含”控件进行布局,因此frame.origin将直接对应于控件需要显示的位置,而frame.size将确定控件的大小。

center - 对于可能发生移动或缩放的基于 Sprite 的游戏和动画,您可能会关注该属性。默认情况下,动画和旋转将基于 UIView 的中心。尝试通过框架属性管理此类对象几乎没有意义。

bounds - 此属性不是定位属性,而是定义 UIView 相对于框架的可绘制区域。默认情况下,此属性通常为 (0, 0, 宽度, 高度)。更改此属性将允许您在框架之外绘制或将绘制限制在框架内的较小区域。对此的详细讨论可以在下面的链接中找到。除非有特定需要调整绘图区域,否则操纵此属性的情况并不常见。唯一的异常(exception)是,大多数程序将在启动时使用[[UIScreen mainScreen]bounds]来确定应用程序的可见区域并相应地设置其初始 UIView 的框架。

Why is there an frame rectangle and an bounds rectangle in an UIView?

希望这有助于澄清每个属性可能使用的情况。

关于UIView的frame、bounds、center、origin,什么时候用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1071112/

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