Quartz 2D之Transparency Layers

透明层:透明层,是由两个活两个以上的对象复合然后生成一个复合图形(也是一个单一的对象)。比如三个圆的阴影。 

Quartz 2D之Transparency Layers_第1张图片

假如上图没有做透明层的渲染,结果是这样的。

Quartz 2D之Transparency Layers_第2张图片

How Transparency Layers Work 透明层是如何工作的。

Quartz 透明层和很多漂亮的图形应用中的layer是相似的。Layers是独立的实体。Quartz为每个上下文保存了一个透明层栈区,这些透明层可以被嵌套。但是因为这些层是堆栈的一部分,你不能独立第操作他们。

当你调用CGContextBeginTransparencyLayer后,开始透明层的工作。这个方法需要传递两个参数,一个上下文,一个是一个CFDictionary对象。这个对象在Quartz 2D API中不可用,所以传递NULL即可。在调用后,上下文状态除了透明度(被设置为1)、阴影(被关闭)混合模式(这里设置为正常)和其他的参数 保存不变从而绘制透明层。

当你开始绘制时,你可以在你要操作的layer上随意绘制。上下文的绘制操作被绘制进一个完全透明的背景中。这个背景可以当做上下文的一个断堵缓冲区。

当你绘制完成后,调用CGContextEndTransparencyLayer,Quartz 融合全局透明度与阴影的图形状态以及裁剪区域生成最终的结果。

Painting to a Transparency Layer  绘制透明层

绘制透明层三部曲:

1.调用 Painting to a Transparency Layer

2.绘制你想在透明层里融合的对象。

3.调用方法CGContextEndTransparencyLayer。

Quartz 2D之Transparency Layers_第3张图片

下面的方法中展示了怎么使用一个透明层。

Quartz 2D之Transparency Layers_第4张图片

 demo 效果图

Quartz 2D之Transparency Layers_第5张图片

 demo地址:TransparencyLayers 

你可能感兴趣的:(Quartz 2D之Transparency Layers)