Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 有人能解释一下CALayer内容的属性吗;坐标系对我来说是什么?_Objective C_Ios_Macos_Core Animation_Core Graphics - Fatal编程技术网

Objective c 有人能解释一下CALayer内容的属性吗;坐标系对我来说是什么?

Objective c 有人能解释一下CALayer内容的属性吗;坐标系对我来说是什么?,objective-c,ios,macos,core-animation,core-graphics,Objective C,Ios,Macos,Core Animation,Core Graphics,我意识到CALayer()的contentsRect属性允许定义用于绘图的层的多少,但我认为我不理解坐标系是如何工作的 似乎宽度/高度越小,用于内容的区域越大,反之亦然。类似地,负x,y位置似乎将内容区域向下和向右移动,这与我的直觉相反 有人能解释为什么会这样吗?我肯定有一个很好的理由,但我想我缺少一些图形编程背景 CALayer的contentsRect属性(此处的文档)允许定义用于绘制的图层的数量 不,你想得不对 contentsRect指定将在层中显示contents图像的哪一部分 然后根

我意识到
CALayer
()的
contentsRect
属性允许定义用于绘图的层的多少,但我认为我不理解坐标系是如何工作的

似乎宽度/高度越小,用于内容的区域越大,反之亦然。类似地,负x,y位置似乎将内容区域向下和向右移动,这与我的直觉相反

有人能解释为什么会这样吗?我肯定有一个很好的理由,但我想我缺少一些图形编程背景

CALayer的contentsRect属性(此处的文档)允许定义用于绘制的图层的数量

不,你想得不对

contentsRect
指定将在层中显示
contents
图像的哪一部分

然后根据
contentsGravity
属性在层中排列该部分

如果这是默认值
kCAGravityResize
,则会导致调整零件大小以适合图层。这就解释了你所看到的违反直觉的行为——你将
内容反射
变小,但图层看起来大小相同,并且它似乎“放大”了图像的选定部分。如果将
contentsGravity
设置为
kCAGravityCenter
,则不会调整大小,您可能会发现更容易理解

大多数情况下,您会将
contentsRect
设置为identity rect
{{0,0},{1,1}}
的某个子矩形,因此您选择只查看部分内容

(如果您愿意,可以将其视为百分比——如果
内容rect
的大小为
{0.5,0.5}
,则选择
内容的50%


如果
内容rect
的一部分超出标识rect,则CA将向外扩展
内容的边缘像素。这在某些情况下很方便,但它不是你单独使用的东西——你可以将它与遮罩或其他层结合使用以达到某种效果。

回答得很好。这更有道理。您知道是否有任何官方文档对此进行了解释吗?除了您链接到的内容之外,最近的内容是或CA编程指南,但都没有更新为包含
内容rect
。要解决这个问题,请单击页面底部的“很好,但是…”链接,并发出请求。实际上,对于一个包含尽可能多的CA参数的API,您应该需要进行实验。文档无法描述每个参数组合的情况。他们能做的最好的事情就是描述管道,这就是第二个链接正在尝试做的。有没有办法将identity rect更改为{{0,0},{1,1}以外的内容?你是什么意思
contentsRect
只是任何rect的规范化表示,与点或像素尺寸无关。您仍然可以使用该规范化rect表示层内容的任何部分(或在必要时将其扩展到其边界之外)。