iOS Quartz 2D如何将图层扩展到屏幕框架之外

时间:2012-11-23 13:38:37

标签: ios ipad quartz-2d

这是一张图片:

enter image description here

是否有办法扩展图层(您绘制的区域),以便更大。 起初我认为(0,0)是中心,但它似乎是层的起点。 我打算在(0,0)处绘制内容,然后根据需要进行翻译。

或者,我必须在图层中心绘制任何内容(宽度/ 2,高度/ 2)然后根据需要进行翻译吗?

EDIT_01: 层的偏移是通过平移手势识别器来完成的。这是有目的的,因为app必须有内容的平移。

1 个答案:

答案 0 :(得分:1)

答案

  

起初我认为(0,0)是中心,但似乎它是图层的起点

iOS中的

(0,0)从图层的左上角开始,并且向右和向下变大。在OS X中,(0,0)从左下角开始,向右和向上变大。

  

有没有办法扩展图层(你绘制的区域),更大

我的问题是,你需要吗?这可能会出现性能问题,因为当您不需要渲染和存储绘图数据时,会导致使用更多内存。看起来您的图层正确填充了屏幕,它只是错误地翻译了。如果将其移动到正确的位置,则无需在屏幕外展开图层。

意味着您无法在屏幕上翻译其他图层,当然可以。但实际上你并不想扩大绘图区域的大小以扩展屏幕。

  

我必须在图层中心绘制任何内容(宽度/ 2,高度/ 2)然后根据需要进行翻译吗?

如果你想让他们进入中心,那么是的。您可以创建自己的方法将自己的坐标空间转换为图层的坐标空间,以便您更轻松。

文档

我建议阅读本文,以便更好地掌握CALayer的几何运算: https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/Layers.html#//apple_ref/doc/uid/TP40006082-SW1

...这是为了了解绘图技巧: https://developer.apple.com/library/ios/#documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_layers/dq_layers.html