【问题标题】:iOS: Apply color effect on top of views from a different view hierarchyiOS:在来自不同视图层次结构的视图顶部应用颜色效果
【发布时间】:2015-09-13 18:45:24
【问题描述】:

我正在寻找一个代码示例(如果这个想法可能的话)如何创建一个影响,我现在将尝试解释:

假设我有一个view (A),上面有背景颜色和标签。标签可以是黑色或白色。现在,从不同的视图层次结构中,我有一个overlay view (B),它位于带有标签的彩色视图的顶部(无法更改标签的颜色)。是否可以对当前的view (B) 应用效果,以便背景view (A) 中的每种颜色都变为不同的颜色。很难描述这种行为。它就像 Photoshop 中的色相/饱和度叠加,但它应该适用于标签的黑白颜色(这很重要)。我希望这可以在不拍摄快照和任何图像的情况下完成,因为标签是动态的。

可以将(B) view 的背景颜色设置为具有一定透明度,这样标签就不是全黑或全白,然后在其上应用效果。

如果有人能从这里引导我或知道可能的代码示例,我将不胜感激。我不知道该问题的关键字,所以我可以自己搜索更多。

Swift 是首选,但我也可以将 Objective-C 翻译成 Swift。

更新:

我想我在这里寻找混合模式,如果不降低性能,这是不可能的。 :/ 如果我错了,请纠正我。

【问题讨论】:

    标签: ios objective-c swift


    【解决方案1】:

    我建议您使用名为 CIColorMap 的 CIFilter。它允许您将单色图像映射到新颜色。

    【讨论】:

    • 这里的问题是背景中的视图是动态的并且可以调整大小并且标签可以在未知时间更改,所以我无法捕获图像并将效果应用于捕获的图像。 :( 现在我正在尝试在顶部放置一个允许透明度和一些混合精灵的 SKView,但不确定这是否可行。
    • 我明白了,是的,这是 CALayer 在 iOS 上的限制。 SpriteKit 确实允许实时过滤器,但我认为过滤器仅适用于子节点。祝你好运!
    • SKSpriteNode 混合似乎只适用于自己的节点层次结构,不会影响可见的背景视图层次结构。好得令人难以置信。
    猜你喜欢
    • 2013-12-22
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多