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