Iphone 如何在UIView和EagleView之间进行融合?

Iphone 如何在UIView和EagleView之间进行融合?,iphone,opengl,uikit,uiview,eaglview,Iphone,Opengl,Uikit,Uiview,Eaglview,我在EagleView层上有一个opengl场景渲染,在UIView(位于其上方的EagleView的兄弟)上有一些其他元素(圆等)渲染。可以在两层之间混合颜色吗?我想做一些不同的混合,以获得一个反转效果的颜色从伊格尔维 我一直在玩CGBlendMode,但它似乎只影响我在当前视图中绘制的内容。我认为这与CGContext有关,但我对细节有点模糊,我可以强制UIView和EagleView使用相同的CGContext,以便它们之间的混合工作吗 感谢您的帮助、更正和澄清。提前感谢,, -我认为你不

我在EagleView层上有一个opengl场景渲染,在UIView(位于其上方的EagleView的兄弟)上有一些其他元素(圆等)渲染。可以在两层之间混合颜色吗?我想做一些不同的混合,以获得一个反转效果的颜色从伊格尔维

我一直在玩CGBlendMode,但它似乎只影响我在当前视图中绘制的内容。我认为这与CGContext有关,但我对细节有点模糊,我可以强制UIView和EagleView使用相同的CGContext,以便它们之间的混合工作吗

感谢您的帮助、更正和澄清。提前感谢,,
-我认为你不能在那种意义上混合颜色。你能做的最好的方法是让一个完全遮住另一个,或者让顶层半透明(在这种情况下,你会看到下面的部分)-但是你不能做XOR类型的绘图。

简单的回答是你不能。答案很长

您所说的
EAGLView
必须是指Xcode中opengles模板中包含的
UIView
的子类。这个类的特殊之处在于,
layerClass
class方法被重写,并返回
caeaglayer
类,而不是
CALayer
类,这是默认情况

UIView
CALayer
成对工作。所有
ui视图
对象都有
CALayer
支持,
CALayer
是负责布局和渲染到屏幕的对象。
UIView
CALayer
的代理,负责在需要时绘制图形

CALayer
将允许其委托(UIView)绘制到
CGContextRef
中。每个
UIView
都有一个上下文,因此不能使用
CGBlendMode
混合多个视图,因为它只在一个UIView上下文中起作用

应使用过滤器属性混合
CALayer
。这些是为iPhone操作系统定义的,但根据文档,可用的过滤器尚未定义。这是因为目前iPhone操作系统上没有核心映像