Quartz 2D之Transparency Layers

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

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

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。

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

 demo 效果图

 demo地址:TransparencyLayers 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容