我有两个不同UIImageViews
。 我想打顶UIImageView
混合使用屏幕混合模式与底部UIImageView
。
我知道的属性CALayer
: compositingFilter
,我知道它不会在iOS的工作。 我搜索了很多的解决方案,我发现一个人应该如何继承UIView
并重写drawRect
。
我试着在设置上下文drawRect
屏幕混合模式,但它仍然吸引了图像的每一个正常。 也许我做错了什么,或者方法应该是不同的。 也许我需要OpenGL或CALayer的实现这一目标。 可能有人帮助?
不幸的是没有办法做到在iOS UIViews之间的非复合的共混物。 UIKit中没有提供的功能,并且你已经注意到,CALayer的不能做,要么。
一般来说,在一个UIView实施-drawRect不会帮你。 您正在绘制到一个空的位图 - 它不包含它背后的意见位,因为这些可能会随时更改(任何视图或层可能被动画)。 CA根本假定层的内容应该是相互独立的。
你可以试试,你-drawRect:
- 创建图像上下文
- 拍摄使用您的视图下的观点
-[CALayer renderInContext:]
每个 - 从该映像创建上下文的图像
- 绘制图像到您的看法
- 设置混合模式,借鉴最重要的是
但是,这将是缓慢和脆弱的,如果你的任何动画的意见将无法正常工作。 我不会推荐它。
如果你真的需要做到这一点,你将不得不切换你的整个场景渲染使用OpenGL, 在那里你有更多的自由 。