有人可以解释的CALayer contentsRect属性的坐标系给我吗?(Can someone

2019-06-23 13:12发布

我意识到contentsRect财产CALayer ( 文件位置 )允许定义多少层的使用绘图,但我不明白是怎么坐标系的作品,我想。

看来,当宽度/高度较小,用于内容的面积越大,反之亦然。 同样,负x,y位置似乎向下和这是我的直觉相反的右侧移动内容领域。

一个人能解释这是为什么? 我敢肯定有一个很好的理由,但我相信我错过了一些图形编程背景。

Answer 1:

CALayer的(这里的文档)的contentsRect属性允许一个定义如何层的多少要用于绘制

不,你没有正确地思考它。

所述contentsRect指定其中一部分 contents的图像将在该层中被显示。

然后,该部分根据设置在所述层contentsGravity属性。

如果这是kCAGravityResize ,默认,这将导致部分调整大小以适应层。 这可以解释你所看到的违反直觉的行为-你做contentsRect较小,但该层似乎是相同的大小,并且它似乎“放大”上的图像的选定部分。 您可能会发现更容易理解,如果你设置contentsGravitykCAGravityCenter ,这不会调整。

大多数时候,你会设定contentsRect的身份矩形的某些子RECT { {0, 0}, {1, 1} }所以你选择只查看的内容的一部分。

(想想这些为百分比,如果你喜欢-如果contentsRect的大小为{0.5, 0.5}你选择的50% contents 。)

如果部分contentsRect那张身份RECT之外,那么CA将延伸的边缘像素contents向外。 这是在某些情况下派上用场,但它不是东西,你会在自己使用 - 你会结合使用它带着面具或一些其他层以达到一定的效果。



文章来源: Can someone explain the CALayer contentsRect property's coordinate system to me?