- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 NSView。它有一层。在该层内部,有几个子层。其中一个子层需要与其下面的层混合。我设置了顶层的 compositingFilter
属性,但没有发生混合。 :-(
这是一个视觉表示:
Root Layer <-- myView.layer
|- Bottom Layer <-- myView.layer.sublayers[0]
|- Middle Layer <-- myView.layer.sublayers[1]
|- Top Layer <-- myView.layer.sublayers[2]
Root Layer
|- Bottom Layer
|- Middle Layer
|- Top Layer <-- Added filter to this layer.
我这样设置属性:
self.topLayer.compositingFilter = [CIFilter filterWithName:@"CIMultiplyBlendMode"];
我假设输入图像和背景图像会自动随每一层的 contents
一起提供,但也许我错了。我是吗?
TL;DR:n00b 如何使用混合模式将一堆图层合成在一起?
附言我正在使用委托(delegate)方法 -drawLayer:inContext:
绘制每一层的 contents
。
最佳答案
你必须在 NSView 上启用一个标志,因为它在图层上使用过滤器:
[self.view setWantsLayer:YES];
[self.view setLayerUsesCoreImageFilters:YES];
我认为这是特定于 OS X 和 NSView 的,对于 iOS 上的 UIView 来说不是必需的。其他一切对我来说都是正确的。
关于objective-c - 在 OS X 上正确应用 CALayer compositingFilter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23690720/
CALayer 状态的 API 文档:(我不确定文档是否是最新的??) compositingFilter A CoreImage filter used to composite the recei
我正在为 iPad 应用程序实现绘图功能。我在 CAShapeLayers 上使用 UIBezierPaths 进行绘图。通过为每个 TouchesBegan 事件创建一个新的 CAShapeLaye
下面的一些 swift 代码,它们都是干净的项目,ObjC 代码有效,swift 代码无效?据我所知相同,但在 swift 下失败了。图像显示但过滤器未在 swift 中应用,在 objC 中工作正常
我有一个 NSView。它有一层。在该层内部,有几个子层。其中一个子层需要与其下面的层混合。我设置了顶层的 compositingFilter 属性,但没有发生混合。 :-( 这是一个视觉表示: Ro
我是一名优秀的程序员,十分优秀!