在两个 UIView 之间应用混合模式的最简单/最快的方法
Posted
技术标签:
【中文标题】在两个 UIView 之间应用混合模式的最简单/最快的方法【英文标题】:Easiest/fastest way to apply a blend mode between two UIViews 【发布时间】:2009-09-03 04:20:17 【问题描述】:我正在尝试快速反转现有 UIView 的颜色(变成负片,如摄影负片)。或者取颜色并调低饱和度。我认为比操作位图更容易的是采用另一个全白(或阴影)的 UIView,并使用混合模式来实现我的目标。
我没有看到一种方法来指导如何将 UIView 绘制在另一个之上。即使我将 UIView 子类化,我也看不到使用更多混合来绘制矩形的简单方法。看起来我将不得不继承具有 drawrect:withBlendMode 的 UIImageView。
有没有人以更简单的方式做到这一点?我希望我可以在 UIView 或 UIImageView 上设置一个 blendmode 属性,而不必子类化......
基本上,您将如何快速反转视图以使黑色为白色,白色为黑色?
【问题讨论】:
嗨@mahboudz,你找到更好的方法了吗?或者你还在用这种方式?谢谢! 【参考方案1】:这似乎是解决方案:
创建一个 UIView 的子类。然后在drawRect中:
[self.image drawInRect:rect];
// prepare the context to draw into
CGContextRef context = UIGraphicsGetCurrentContext();
// set the blend mode
CGContextSetBlendMode(context, kCGBlendModeDifference);
// now draw the appropriate color over the whole thing
CGContextFillRect(....);
我现在要去试试这个。
【讨论】:
这真的有效吗?我知道它到处张贴,但它有效吗?以上是关于在两个 UIView 之间应用混合模式的最简单/最快的方法的主要内容,如果未能解决你的问题,请参考以下文章
在 SQL Server 2008 中区分两个表架构的最简单方法是啥?