16 xcode objective-c calayer uiview ios
我有两个不同的UIImageViews.我想UIImageView使用屏幕混合模式与底部进行顶部混合UIImageView.
我知道它的属性CALayer:compositingFilter我知道它在iOS中不起作用.我已经搜索了很多解决方案,我发现了如何进行子类化UIView和覆盖drawRect.
我试图将上下文设置为drawRect屏幕混合模式,尽管它仍然正常地绘制每一个图像.也许我做错了什么,或者方法应该是不同的.也许我需要OpenGL或CALayer来实现这一目标.有人可以协助吗?
Kur*_*vis 17
不幸的是,没有办法在iOS上的UIViews之间进行非复合混合.UIKit没有提供功能,你已经注意到了,CALayer也做不到.
一般来说,在UIView中实现-drawRect对你没有帮助.您正在绘制一个空位图 - 它不包含其后面的视图位,因为它们可能随时更改(任何视图或图层都可能是动画的).CA从根本上假设图层的内容应该彼此独立.
你可以尝试,在你的-drawRect:
-[CALayer renderInContext:]每个视图捕获视图下的视图但这将是缓慢而脆弱的,如果您为任何视图制作动画,它将无法工作.我不推荐它.
如果你真的需要这样做,你将不得不将整个场景切换为使用OpenGL进行渲染,在那里你可以获得更多自由.
| 归档时间: |
|
| 查看次数: |
9055 次 |
| 最近记录: |