gpt4 book ai didi

ios - 问题理解 CALayer 几何。需要帮助

转载 作者:可可西里 更新时间:2023-11-01 05:47:02 24 4
gpt4 key购买 nike

我正在尝试理解 calayer 的几何结构,但在理解这一点时遇到问题

  • 位置(我很清楚)

  • 界限(Apple 文档说)bounds 属性是一个 CGRect,它提供层的大小 (bounds.size) 和原点 (bounds.origin)。

The bounds origin is used as the origin of the graphics context whenyou override a layer's drawing methods.

I did't get this point regarding bounds.

  • 框架(苹果文档说)

Layers have an implicit frame that is a function of the position,bounds, anchorPoint, and transform properties. Setting a new framerectangle changes the layer's position and bounds propertiesappropriately, but the frame itself is not stored. When a new framerectangle is specified the bounds origin is undisturbed, while thebounds size is set to the size of the frame. The layer's position isset to the proper location relative to the anchor point. When you getthe frame property value, it is calculated relative to the position,bounds, and anchorPoint properties.

but this is lot more complex and different then this Stanford university lecture slide 19

  • AnchorPoint 最后这个玩边界...让我头晕

需要帮助。

谢谢,问候。

最佳答案

每个 View 都有自己的坐标系。

任何 View 的坐标系都以 (0,0) 为原点。因此,任何 View 的边界都是该坐标系的“边界”,即。 (0、0、宽度、高度)。

任何 View 的位置都是根据父 View 或superview 的坐标系计算的。这是任何 View 的框架,因此将是 (x, y, width, height),其中 x 和 y 代表左上角或左上角在父坐标系中的位置。

ios 文档使用这张图片对此进行了解释

This should explain things much better

对于最后一个,由于 AnchorPoint 在 View “内部”,它在 View 的坐标系中表示,因此必须使用边界,就像 center 属性一样。

对于 CALayer 也是如此,其中层的边界在它们自己的坐标系中定义,它们的框架由它们的父 View 定义。有很多差异,有些是直接的,比如层有更深层次的控制,你可以设置 zordering 并有一个 anchor 来处理变换等。有些是微妙的,比如 CALayer 的 frame 属性是不可动画(即在动画 block 中更改它无效)。

而且,我建议您尝试使用较小的程序来理解差异,而不仅仅是尝试从一两本书中获取所有内容,甚至是 SO。

关于ios - 问题理解 CALayer 几何。需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9720723/

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